• 第十三周编程总结


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

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

    记事本源代码:

    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可实现简单的菜单外观,使用事件监听可对应作出一些功能的实现,如代码记事本、

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

  • 相关阅读:
    HDU 1564 Play a game(巴什博弈)
    威佐夫博弈(Wythoff Game)
    产生冠军 hdoj_2094 巧用set
    find your present (感叹一下位运算的神奇)
    快速排序
    深度优先搜索(DFS)
    hdoj 2075 A|B?
    基础练习 特殊回文数
    10.Nginx Rewrite重写
    07.Nginx七层负载均衡
  • 原文地址:https://www.cnblogs.com/Bowen----/p/11920478.html
Copyright © 2020-2023  润新知