java学习——79.简单通讯录(四)

主界面类:

终于进入主界面了。

主界面代码稍有点长,所以我将之分为布局和事件两部分介绍,但都是在同一个类Txl中。

对于主界面的布局,我分为了三部分:上、中、下,各用了一个JPanel面板。

然后将这三个面板按照JFrame的默认布局方式将之放在北、中、南三个位置。

代码如下:

/**

通讯录的主界面,main方法在本类中

*/

import  java.awt.*;

import  javax.swing.*;

import  java.awt.event.*;

import  javax.swing.event.*;

public class Txl extends JFrame implements ActionListener {

private JPanel top,main,bottom;//面板,上,中,下

private People people[];//接收传过来的联系人

private JButton button[];//按钮组,面板下中的“查找”、“新增”、“删除”、“排序”四个按钮

private JTextField select_person;//查找按钮旁边的文本框

private JComboBox sort_person;//排序按钮旁边的组合框

private DefaultListModel model;//接收传过来的模板,以创建列表框

private JList list;//联系人,列表框

public Txl(DefaultListModel model,People people[]){

super("通讯录");

this.setVisible(true);

this.setBounds(200, 200, 760, 300);

//以下为三个面板的实例化

top=new JPanel();

top.setSize(760,20);

main=new JPanel();

main.setSize(760,240);

bottom=new JPanel();

bottom.setSize(760,30);

//以下为将三个面板放在适当的位置

this.getContentPane().add(top,"North");

this.getContentPane().add(main);

this.getContentPane().add(bottom,"South");

//以下调用方法来具体为三个面板填充组件

this.top_AddCompont();

this.bottom_Addbutton();

this.model=new DefaultListModel();

this.model=model;

this.main_AddComponent();

this.people=people;

}

//面板bottom中添加组件

public void bottom_Addbutton(){

String s[]={"新增","修改","删除","go","排序"};

button=new JButton[s.length]; //创建按钮,按钮中的文字即以上数组中的字

for(int i=0;i<s.length;i++){

button[i]=new JButton(s[i]);

button[i].addActionListener(this); //为每一个按钮注册事件监听

}

select_person=new JTextField(10);

sort_person=new JComboBox();

String s2[]={"按姓名笔画排序","按姓名首字母排序"};

for(int j=0;j<s2.length;j++){

sort_person.addItem(s2[j]); //给组合框添加文本

}

bottom.add(button[0]);//新增按钮加入到bottom面板中

bottom.add(button[1]);//修改

bottom.add(button[2]);//删除

bottom.add(new Label("查找联系人:"));//bottom面板中添加标签

bottom.add(select_person);//查找文本框

bottom.add(button[3]);//go

bottom.add(sort_person);//排序组合框

bottom.add(button[4]);//排序

sort_person.addActionListener(this); //为排序组合框注册事件监听

}

//创建列表框中,并加入到main面板

publicvoid main_AddComponent(){

list=new JList(model); //实例化列表,列表中的模板即为Main类中传过来的数据

list.setSize(680, 300);

list.addListSelectionListener(this); //为列表注册事件监听

main.add(new JScrollPane(list)); //将列表放入滚动窗格中,并加入到main面板中

}

//最顶上面板

publicvoid top_AddCompont(){

top.setLayout(new FlowLayout());//top面板的布局方式

top.add(new JLabel("亲爱的主人,您好,今天是:"));//top面板添加标签

top_time time=new top_time();//此为另一个类,该类的主要作用是显示当前时间,用了多线程的方式,以使其可以实时显示时间

time.start();//线程启动

top.add(time.getLabel());//将显示时间的标签加入到top面板中

}

其运行结果如下:

本篇于年前已写好,但一天只能群发一次,明天要回老家,不知道哪天能想起来发出来

(0)

相关推荐