• 第十三周总结


    这周主要是学习了监听器还有制作记事本,主要可以由一下代码来体现(把书上代码集合的)

    监听器

    实验代码

    
    package text12;
    
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.Panel;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.util.Vector;
    
    import javax.swing.*;
    public class Text12 extends JFrame implements ItemListener/* KeyListener,MouseListener*/ {
        
        JTextArea ta;
        JScrollPane sp;
        JRadioButton pb,pb1,pb2;
        ButtonGroup group;
        JLabel la,la1;
        JPanel pane;
        JCheckBox cb,cb1;
        Container con;
        JList list,list1;
        String tv[] = {"美剧","韩剧","日剧","泰剧","港剧"};
        Vector<String> v;
        
        public Text12() {
            
            this.setTitle("监听器");
            v=new Vector<String>();
            v.add("男");
            v.add("女");
            list=new JList(tv);
            list1=new JList(v);
            list.setBorder(BorderFactory.createTitledBorder("喜欢看哪个国家的剧"));
            list1.setBorder(BorderFactory.createTitledBorder("性别"));
            list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
            list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            
            con=this.getContentPane();
            cb=new JCheckBox("舒畅");
            cb1=new JCheckBox("杨蓉");
            pane=new JPanel(new FlowLayout(FlowLayout.LEFT));
            pane.setBorder(BorderFactory.createTitledBorder("调查表"));
            la=new JLabel("最喜欢的男明星是:         ");
            la1=new JLabel("最喜欢的女明星是:          ");
            pb=new JRadioButton("朱一龙");
            pb1=new JRadioButton("肖战");
            pb2=new JRadioButton("邓伦");
            group=new ButtonGroup();
            group.add(pb);
            group.add(pb1);
            group.add(pb2);
            pane.add(la);
            pane.add(pb);
            pane.add(pb1);
            pane.add(pb2);
            
            pane.add(la1);
            pane.add(cb);
            pane.add(cb1);
    
            pane.add(list);
            pane.add(list1);
            pb.addItemListener(this);
            pb1.addItemListener(this);
            pb2.addItemListener(this);
            con.add(pane);
        //  ta=new JTextArea(4,5);
        //  sp=new JScrollPane(ta,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        //  ta.addKeyListener(this);
        //  ta.addMouseListener(this);
            
            this.pack();    
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.setVisible(true);
        }
    
    
        public static void main(String[] args) {
            new Text12();
    
        }
    
    
        @Override
        public void itemStateChanged(ItemEvent e) {
            if(e.getSource()==pb) {
                System.out.println(pb.getText());
            }   
            
        }
    
    
        
    
    /*  @Override
        public void keyTyped(KeyEvent e) {
            ta.append(e.getKeyChar()+"
    ");
            
        }
    
    
        @Override
        public void keyPressed(KeyEvent e) {
            ta.append(e.getKeyCode()+"
    ");
            
        }
    
        @Override
        public void keyReleased(KeyEvent e) {
            ta.append(KeyEvent.getKeyText(e.getKeyCode())+"
    ");
            
        }
    
        @Override
        public void mouseClicked(MouseEvent e) {
            int c=e.getButton();
            String mouse;
            if(c==MouseEvent.BUTTON1) {
                mouse="左键";
            }else if(c==MouseEvent.BUTTON3){
                mouse="右键";
            }else {
                mouse="中键";
            }
            ta.append(mouse);
            
        }
    
        @Override
        public void mousePressed(MouseEvent e) {
            int a=e.getClickCount();
            ta.append(a+"
    ");
            
        }
    
        @Override
        public void mouseReleased(MouseEvent e) {
            String str=MouseEvent.getMouseModifiersText(WIDTH);
            ta.append(str);
            
        }
    
        @Override
        public void mouseEntered(MouseEvent e) {
            int x=e.getX();
            int y=e.getY();
            ta.append("("+x+","+y+")");
            
        }
    
        @Override
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    */
    }
    

    记事本

    
    package jishiben;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    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 Jishiben 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)");
            
            //关于文件的选项
            newItem=new JMenuItem("新建(N)");
            windomItem=new JMenuItem("新窗口(W)");
            openItem=new JMenuItem("打开(O)");
            saveItem=new JMenuItem("保存(S)");
            othersaveItem=new JMenuItem("另存为(A)");
            pagesetupItem=new JMenuItem("页面设置(U)");
            printItem=new JMenuItem("打印(P)");
            closeItem=new JMenuItem("退出(X)");       
            
            //关于文件助记符的设置
            newItem.setMnemonic('N');
            windomItem.setMnemonic('W');
            openItem.setMnemonic('O');
            saveItem.setMnemonic('S');
            othersaveItem.setMnemonic('A');
            pagesetupItem.setMnemonic('U');
            printItem.setMnemonic('P');
            closeItem.setMnemonic('X');
            
            //关于文件快捷键的设置
            newItem.setAccelerator(KeyStroke.getKeyStroke('N',KeyEvent.CTRL_DOWN_MASK));
            windomItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK));
            openItem.setAccelerator(KeyStroke.getKeyStroke('O',KeyEvent.CTRL_DOWN_MASK));
            saveItem.setAccelerator(KeyStroke.getKeyStroke('S',KeyEvent.CTRL_DOWN_MASK));
            othersaveItem.setAccelerator(KeyStroke.getKeyStroke('S',KeyEvent.CTRL_DOWN_MASK|KeyEvent.SHIFT_DOWN_MASK));
            printItem.setAccelerator(KeyStroke.getKeyStroke('P',KeyEvent.CTRL_DOWN_MASK));
            
            
            //关于文件菜单的动作监听
            newItem.addActionListener(this);
            windomItem.addActionListener(this);
            openItem.addActionListener(this);
            saveItem.addActionListener(this);
            othersaveItem.addActionListener(this);
            pagesetupItem.addActionListener(this);
            printItem.addActionListener(this);
            closeItem.addActionListener(this);
            
            
            //向菜单栏添加
            bar.add(fileMenu);
            bar.add(editMenu);
            bar.add(formatMenu);
            bar.add(checkMenu);
            bar.add(helpMenu);
            
            
            frame.add(sp);
            frame.setJMenuBar(bar);
            frame.setSize(400,300);
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            
            
        }
        
        public static void main(String[] args) {
            Jishiben shi=new Jishiben();
            shi.Wenjian();
    
        }
        public void actionPerformed(ActionEvent e){
            //关于文件下面选项的监听
            if(e.getSource()==newItem) {
                text.setText("");
            }else if(e.getSource()==windomItem) {
                Jishiben ben =new Jishiben();
                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接口

    2)鼠标监听

    使用MouseListener接口,其中MouseEvent中有getButton(),getX(),getY()等方法

    3)单选钮:JRadioButton及事件处理

    方法:

    setSelected();是否被选中

    setText(String);设置显示文本

    setIcon(Icon);设置图片

    其事件处理使用ItenListener

    4)复选框:JCheckBoxji事件处理

    方法:

    JCheckBox();创建文本对象

    其事件处理也是用ItemListener接口

    5)列表框:JList及事件处理

    方法:

    int[] getSeletrdIndices();返回所选择的所有数组

    Jlist(ListModel/Object[] listData/Vector<?>listData);构造JList

    其事件处理使用ListSelectionListener接口

    菜单组件

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

  • 相关阅读:
    处理sevenzipsharp 检查密码函数的Bug
    C# 开源压缩组件比较
    css 一些技巧
    input 限制输入
    原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
    js string.format 方法
    Atom插件及使用
    chrome浏览器的跨域设置-包括版本49前后两种设置 ,windows&mac
    原生js监听input值改变事件
    html5 tab横向滚动,无滚动条(transform:translate)
  • 原文地址:https://www.cnblogs.com/xia-unun/p/11920517.html
Copyright © 2020-2023  润新知