JavaSwing设计心得

1. 设计一个界面,首先明确需要哪些控件,这个是需要知道的,然后在最开始就将这些控件定义出来,以备下面的程序使用。

 

2. 该定义些什么东西,能想到的尽量先定义出来,不能想到的之后需要用到再定义也行。

 

3. 构造器以及其内容(以下是一个界面的最基本部分,几乎每个界面的构造器里面都要有这些):

super("课程表");
myft=new Font("微软雅黑", 1, 20);(设置字体,之后的JLabel可能会调用setFont())
this.setLayout(null);
this.setBounds(350, 100, 800, 500);
this.setVisible(true);

4. 构造器中间的内容:假设就是一张课程表(整个表的内容包含标题,一张表格,三个按钮)

      a. 先把JLabel,JTabel和多需要的JButton都new出来,然后setFont,setBounds,该干什么就干什么。最后调用this.add()将控件加进来,JTabel的处理可能多一点。

      b. 接下来,按钮有监听器就加监听器。

      下面是一个例子:

//标题
jl_ttl=new JLabel("记录总数: "+allNum);
jl_ttl.setFont(myft);
jl_ttl.setBounds(320,20,200,40);
this.add(jl_ttl);

//JTable相关
dtm=new DefaultTableModel(crsMsg,headers);  (headers是自己在构造器外定义的,crsMsg是访问相应的数据库得到的。)
jt=new JTable(dtm);
//放在JScrollPane里才能显示表头
jsp=new JScrollPane(jt);
jsp.setBounds(40,70,700,300);
this.add(jsp);

//新增按钮
jb_add=new JButton("新增");
jb_add.setBounds(100, 390, 140, 30);
jb_add.addActionListener(new ActionListener(){
	@Override
	public void actionPerformed(ActionEvent arg0) {
		new crsInput();
	}
			
});
this.add(jb_add);

//删除按钮
jb_dlt=new JButton("删除");
jb_dlt.setBounds(340, 390, 140, 30);
jb_dlt.addActionListener(new ActionListener() {
	@Override
	public void actionPerformed(ActionEvent arg0) {
		int nowRow=jt.getSelectedRow();//当前选中
		if(nowRow<0){
			JOptionPane.showMessageDialog(null,"缺少选择!");
			return;
		}
		tchr.dltOpnCrs(crsMsg[nowRow][5], crsMsg[nowRow][0], crsMsg[nowRow][6], crsMsg[nowRow][7]);
		System.out.println(crsMsg[nowRow][5]+" "+crsMsg[nowRow][0]+" "+crsMsg[nowRow][6]+" "+crsMsg[nowRow][7]);
		crsMsg=tchr.getLZH3();
		flushMsg(crsMsg);
	}
});
this.add(jb_dlt);

//退出按钮
jb_ext=new JButton("退出");
jb_ext.setBounds(580, 390, 140, 30);
jb_ext.addActionListener(new ActionListener() {
	@Override
	public void actionPerformed(ActionEvent arg0) {
		dispose();
	}
});
this.add(jb_ext);

你可能感兴趣的:(#,Java学习)