第十三周编程总结

这周主要学习监听器以及各种事件处理,例如键盘监听、鼠标监听、单选钮、复选框、列表框、菜单组件。

下面是我自己写的一个记事本代码

 

记事本源代码:

package thirteen;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.*;
import javax.swing.undo.UndoManager;

public class test implements ActionListener{

    JFrame frame;
    JTextArea text;
    JScrollPane sp;
    JMenuItem newItem,windomItem,openItem,saveItem,othersaveItem,pagesetupItem,printItem,closeItem;
    JMenuBar bar;
    JMenu fileMenu,editMenu,formatMenu,checkMenu,helpMenu;
    JFileChooser choose;
    File file;
    JTable table;
    JMenuItem blankItem;
    UndoManager undoManager;
    
    public void Wenjian() {
        
        frame=new JFrame("记事本");
        text=new JTextArea();
        sp=new JScrollPane(text);
        bar=new JMenuBar();
        
        fileMenu=new JMenu("文件(F)");
        editMenu=new JMenu("编辑(E)");
        formatMenu=new JMenu("格式(O)");
        checkMenu=new JMenu("查看(V)");
        helpMenu=new JMenu("帮助(H)");
                


        //向菜单栏添加
        bar.add(fileMenu);
        bar.add(editMenu);
        bar.add(formatMenu);
        bar.add(checkMenu);
        bar.add(helpMenu);
        
        
        frame.add(sp);
        frame.setJMenuBar(bar);
        frame.setSize(800,600);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        
        
    }
    
    public static void main(String[] args) {
        test shi=new test();
        shi.Wenjian();

    }
    public void actionPerformed(ActionEvent e){
        //关于文件下面选项的监听
        if(e.getSource()==newItem) {
            text.setText("");
        }else if(e.getSource()==windomItem) {
            test ben =new test();
            ben.Wenjian();
        }else if(e.getSource()==openItem) {
            choose=new JFileChooser();
            choose.showOpenDialog(null);
            file=choose.getSelectedFile();
            try {
                FileInputStream input=new FileInputStream(file);
                byte[] b=new byte[input.available()];
                input.read(b);
                text.append(new String(b));
                input.close();
                
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }else if(e.getSource()==othersaveItem) {
            choose=new JFileChooser();
            choose.showOpenDialog(null);
            file=choose.getSelectedFile();
            try {
                if(!file.exists()) {
                  file.createNewFile();
                }
                FileOutputStream output=new FileOutputStream(file);
                byte[] b=text.getText().getBytes();
                output.write(b);
                output.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }else if(e.getSource()==saveItem) {
            choose=new JFileChooser();
            choose.showOpenDialog(null);
            file=choose.getSelectedFile();
            try {
                FileOutputStream output=new FileOutputStream(file);
                byte[] b=text.getText().getBytes();
                output.write(b);
                output.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }else if(e.getSource()==pagesetupItem) {
            
        }else if(e.getSource()==printItem) {
            
        }else if(e.getSource()==closeItem) {
            System.exit(1);
        }
    }

}

 

运行截屏:

 

 

总结:

1)键盘监听
使用KeyListener接口,在取得键盘信息时最好使用KeyEvent类提供的静态方法getKeyText()完成。
2)鼠标监听
使用MouseListener接口,其中MouseEvent中有getButton(),getX(),getY()等方法
3)单选钮:JRadioButton及事件处理
方法:
setSelected();是否被选中
setText(String);设置显示文本
setIcon(Icon);设置图片
其事件处理使用ItenListener
4)复选框:必须使用JCheckBox事件处理
方法:
JCheckBox();创建文本对象
其事件处理也是用ItemListener接口
5)列表框:JList及事件处理
方法:
int[] getSeletrdIndices();返回所选择的所有数组
Jlist(ListModel/Object[] listData/Vector<?>listData);构造JList
其事件处理使用ListSelectionListener接口

菜单组件
JMenu、JMenuBar、JMenuItem可实现简单的菜单外观,使用事件监听可对应作出一些功能的实现,如代码记事本、

 感觉写这个记事本代码很有意思,但又感觉界面有点不太灵活!

 

posted on 2019-11-23 22:18  Bowen158  阅读(127)  评论(0编辑  收藏  举报

导航