JAVA界面好难控制呀,写着写着就不知道该怎么继续了........

package com.practice;

import java.awt.Toolkit;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import com.exercise.dbo.DBManage;

/**
 *
 *功能:事件应答操作
 * @author dreamer
 *DATE 2016年4月28日上午12:00:19
 *
 */

public class MainFrame extends JFrame{
    private String currentId=null;
    private JLabel[] lblFriends =null;
    private JLabel lblQQId1 = new JLabel("QQ号码:");
    public MainFrame(String currentId){
        if(currentId==null){
            this.currentId="10000";
        }else{
            this.currentId=currentId;
        }
        //默认关闭窗体
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置标题
        this.setTitle("QQ登录");
        //设置大小
        this.setSize(300, 600);
        //设置窗体居中
        setCenterLocation();
        //显示窗体
        this.setVisible(true);
        //设置窗体用户名
        setCurrTilt();
        //显示好友信息
        setFriends();
        
    }
    private void setCurrTilt() {
        String sql =String.format("select * from Users where id=%s",this.currentId);
        
        ResultSet rs = DBManage.myexecuteQuery(sql);
        try {
            if(rs.next()){
                
                this.setTitle(rs.getInt("id")+":"+rs.getString("NickName"));
            
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            //关闭数据连接
            DBManage.CloseConnection();
        }
    }
     private void setFriends(){
        
         JPanel contentPane =(JPanel) getContentPane();
         contentPane.setLayout(null);
         contentPane.setLayout(null);
         String sql =String.format
                 ("select * from Users where id in(select FriendID from friends Where HostId=%s) ;"
                         ,this.currentId);
        
        ResultSet rs= DBManage.myexecuteQuery(sql);
        try {
            List <String> friendList = new ArrayList<String>();
            while(rs.next()){
                int id = rs.getInt("id");
                String nickName = rs.getString("NickName");
                String strFaceId =rs.getString("faceId");
                //判断是否为空
                if(strFaceId.isEmpty()){
                    strFaceId="1";
                }
                
                StringBuffer sb=new StringBuffer();
                sb.append(id);
                sb.append(",");
                sb.append(nickName);
                sb.append(",");
                sb.append(strFaceId);
                
                //添加到数据集合
                friendList.add(sb.toString());
            }
            //为集合指定长度
            lblFriends=new JLabel[friendList.size()];
            
            for(int i=0;i<lblFriends.length;i++){
                lblFriends[i]=new JLabel(friendList.get(i));
                if(i==0){
                    lblFriends[i].setBounds(30,40,150,100);
                }else{
                    lblFriends[i].setBounds(30,lblFriends[i-1].getY()+40,150,100);
                }
                String faceId = friendList.get(i).split(",")[2];
                
                //图片路径
                String imgUrl = String.format("images/%s.jpg",faceId);
                lblFriends[i].setIcon(new ImageIcon(imgUrl));
                lblFriends[i].setIconTextGap(JLabel.BOTTOM);
                contentPane.add(lblFriends[i]);
            }
            
            
            
            lblQQId1.setIcon(new ImageIcon("images/1-1.jpg"));
            lblQQId1.setIconTextGap(JLabel.BOTTOM);
            lblQQId1.setBounds(10, 5, 80, 50);
            contentPane.add(lblQQId1);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            //关闭数据连接
            DBManage.CloseConnection();
        }
     }
        /**
         * 设置窗体居中
         */
        private void setCenterLocation(){
            this.setLocation(
                    ((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()-this.getWidth())/2,
                    ((int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-this.getHeight())/2
                    );
        }
}

时间: 2024-08-28 12:13:38

JAVA界面好难控制呀,写着写着就不知道该怎么继续了........的相关文章

java界面编程(3) ------ 控制布局

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在java 中,组件放置在窗体上的方式可能与其他的GUI系统都不相同.首先,它完全基于代码,没有用来控制组件布置的"资源".第二,组件旋转在窗体上的方式不是通过绝对坐标控制,而是由"布局管理器"根据组件加入的顺序决定位置.使用不同的布局管理器,组件的大小,形状和位置将大不相同,此外,布局管理器还可以适应applet或应用程序窗口的大小,所以如果窗口

Java制作最难练手速游戏,Faker都坚持不了一分钟

想练手速,来啊,互相伤害啊 Java制作最难练手速游戏,目测Faker也坚持不了一分钟 制作思路:只靠Java实现.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java.Java. 字母模型应该是整个游戏的主角,因为整个游戏过程中都涉及到它的运动,比如坠落,消失,产生等,首先应该考虑字母随即出现的位置,在游戏中不断下落,计算下落的高

Java、JVM和操作系统之间的关系,写给新人,

来张图:这个帖子写给新人的,老玩家就直接无视他,因为这个完完全全是白话基础原理. 解释:上面的图是从上往下依次调用的关系. 操作系统(Windows/Linux)管理硬件,让硬件能够正常.合理的运行,当然各种硬件的驱动实现了操作系统的接口,操作系统调用这些接口就能管理硬件,操作系统还像程序员提供了一层接口,叫做系统呼叫层,程序员可以面向这一层的接口编程,来实现对计算机的控制,而不同的操作系统(或者说不同的CPU架构)所提供的接口都是不一样的,Windows和Linux提供给的那肯定是完全不一样的

Java数据类型(二)、Java运算符、流程控制

一.程序写作(创建对象的初始化过程) 1.目的/结果:输出一段话"..." 2.步骤: (1)创建一个基础类,main: (2)创建一块内存空间,用来存储这段话 ①先定义属性,name,sex,age等: ②再定义方法,需要重新创建新的class类,但不需要新的ma方法: (3)调用系统方法/库方法println,实现输出结果 ①在原有的类中创建新对象,将新的class类中的方法调用过来: ②运行,输出所有的内容. //---------------------------------

.NET C#转Java没那么难,开发环境篇

.NET C#转Java没那么难,都是面向对向的语言,而且语法还是相似的,先对比一下开发环境,再到Servlet,再到MVC,都是一样一样的,只是JAVA的配制项比较多而已,只要配好一个,后面都是copy,简直so easy,而且用myeclipse可以省一些配制 目录 .NET C#转Java没那么难,开发工具篇 .NET C#转Java没那么难,Servlet篇 .NET C#转Java没那么难,MVC篇 1.运行环境 Java:JDK JDK安装与环境变量配置 .NET:.NetFrame

Java界面设计 Swing(1)

Java界面设计的用途 开发者可以通过Java SE开发丰富并且强大的具有图形界面的桌面应用程序.也可以设计一些提高效率的工具软件,帮助自己处理机械性工作. Java 的图形界面工具包,可以用于工具类软件开发.管理类软件开发.通用客户端开发.银行客户端软件开发.Eclipse 插件开发等方向.在许多知名的大型软件中,都能够见到 Java 的身影,如某些版本的 Photoshop.思维导图软件.Eclipse.IDEA 开发环境等. Java有多套GUI工具包,因为没有一个可以满足所有的要求. J

Java为何这么难学?

在学校的时候,就开始接触Java,哪个时候学的是基础的语法.毕业之后,由于没有找到实习工作且没有从事Java开发,慢慢的就把Java给丢了.从学校出来的几个同事,有的进入了项目实施行业,做了项 目经理.有的继续从事Java开发,其中一个同学进入了阿里,还有的做了运维,我选择走上了测试这条路. 在最近几年的工作中,先后学习了数据库,服务器运维,测试技术等基本的IT技术,但是最近想把自动化搞起来,除了一个测试工具jmeter之外,如果能用Java语言写自动化测试框架,那就更牛逼了.于是想重新捡起已经

基于遗传算法求解TSP问题(Java界面)

近期为做展示,改写了一个遗传算法求TSP的Java界面版,思路代码和 http://blog.csdn.net/wangqiuyun/article/details/12838903 这篇文章思路是一样的,追加了Java用Graphics画点及画线做路径展示,展示部分做得比較粗糙,须要的拿走,效果图例如以下. 下载地址:http://download.csdn.net/detail/wangqiuyun/7406201 另C#界面版:http://blog.csdn.net/wangqiuyun

Java中的流程控制(二)

关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch(表达式){case 取值1: 语句块1 break;--case 取值n: 语句块n break; default: 语句块n+1 break;} 例子:将1~3对应的星期几的英文单词打印出来, int x=2;switch(x){ case 1: System.out.println("Monda