Java第七次作业--图形用户界面

(一)学习总结

1 . 写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。

事件源:

(1)事件源是一个产生(或触发)事件的对象。当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件(一个事件源可能会生成多个不同类型的事件)。如果某个组件(对象)希望得到事件源产生的事件,就需要在这个事件源上注册。

事件:

(2)事件就是承载事件源状态改变时的信息对象。java.awt.event包和javax.swing.event包中定义了各种事件类,类名以Event结尾。

事件监听器接口:

(3)API对于每种事件都定义了对应的接口,接口中定义了处理该事件的方法,这些接口称为事件监听器接口。监听器接口以Listener结尾。如ActionListener接口处理ActionEvent事件。事件源产生一个事件,可以传送给事件监听者处理。事件监听者实际上就是一个类,该类实现了某个事件监听器接口,对接受到的事件进行处理。

//添加监听器
private void addListener() {
    //添加按钮监听
    addBtn.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            addPet();  //调用添加方法
        }
    });
    //修改按钮监听
    updateBtn.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            updatePet();  //调用修改方法
        }
    });
    //删除按钮监听
    delBtn.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            delPet();   //调用删除方法
        }
    });
    
}

添加监听器:

public AdminDialog(Frame owner,boolean modal){
    super(owner,modal);
    this.init();            //初始化
    this.addComponent();    //添加组件
    this.addListener();     //添加监听器
    queryPet();       //创建对象时显示数据
}

2.JTextArea与TextArea自动换行和滚动条的对比

1.自动换行

  • JTextArea自动换行代码:

      JTextArea jtextArea = new JTextArea();  // 新建jtextArea
      jtextArea.setLineWrap(true);   //实现自动换行
    
  • TextArea,在创建文本区时直接设置:

TextArea.SCROLLBARS_VERTICAL_ONLY,意为仅垂直方向设置,达到了自动换行的效果;

如果通过TextArea的其他构造方法,创建出来的文本区是含垂直和水平两个方向的滚动条,不支持自动换行

TextArea textArea = new TextArea("", 20, 43, TextArea.SCROLLBARS_VERTICAL_ONLY); // 创建文本区

2.滚动条:

  • JTextArea添加滚动条(JScrollPane)代码:

      JScrollPane scrollPane = new JScrollPane(textArea);    //创建滚动条,需要指定添加位置
      scrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); //设置滚动条的形式
    
  • TextArea 默认自带滚动条(默认为SCROLLBARS_BOTH),如果不用滚动条,把 TextArea.SCROLLBARS_VERTICAL_ONLY 改为 SCROLLBARS_NONE

(二)实验总结

程序设计思路:使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
在管理界面实现以下功能:
(1)显示所有宠物列表
(2)添加宠物到列表
(3)删除宠物
(4)对宠物信息进行修改
(5)退出

问题:对界面信息的添加不清楚

private JLabel tableLabel = new JLabel("宠物列表");
private JScrollPane tablePane = new JScrollPane();
private JTable table = new JTable();
private JLabel numberLabel = new JLabel("宠物编号");
private JLabel nameLabel = new JLabel("宠物种类");
private JLabel priceLabel = new JLabel("宠物价格");
private JLabel ageLabel = new JLabel("宠物年龄");
private JLabel unitLabel = new JLabel("宠物数量");

private JTextField addNumberText = new JTextField(6);
private JTextField addNameText = new JTextField(6);
private JTextField addPriceText = new JTextField(6);
private JTextField addAgeText = new JTextField(6);
private JTextField addUnitText = new JTextField(6);
private JButton addBtn = new JButton("添加宠物");
private JTextField updateNumberText = new JTextField(6);
private JTextField updateNameText = new JTextField(6);
private JTextField updatePriceText = new JTextField(6);
private JTextField updateAgeText = new JTextField(6);
private JTextField updateUnitText = new JTextField(6);
private JButton updateBtn = new JButton("修改宠物");
private JTextField delNumberText = new JTextField(6);
private JButton delBtn = new JButton("删除宠物");
private AdminService adminService = new AdminService();  // 定义服务类对象,提供完整功能服务
private JButton fhBtn = new JButton("返回");

解决方法:经过反复添加与修改,才做好。

(三)代码托管

地址链接:

http://git.oschina.net/hebau_cs15/java-cs02cmy/tree/master/

posted on 2017-05-11 13:24  绝版de初夏  阅读(274)  评论(0编辑  收藏  举报