2019Java Week 13 Course Summary

This week is mainly there to make learning a listener Notepad, mainly may be embodied by the code

Monitor

Experiment Code

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()+"\n");
        
    }


    @Override
    public void keyPressed(KeyEvent e) {
        ta.append(e.getKeyCode()+"\n");
        
    }

    @Override
    public void keyReleased(KeyEvent e) {
        ta.append(KeyEvent.getKeyText(e.getKeyCode())+"\n");
        
    }

    @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+"\n");
        
    }

    @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
        
    }
*/
}

Run shot

notebook

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);
        }
    }

}

Run shot

The main study and various event listener process
1) keyboard surveillance
using KeyListener Interface
2) mouse listener
using MouseListener interfaces, wherein there MouseEvent getButton (), getX (), getY () method, etc.
3) radio button: JRadioButton event and processing
method:
setSelected (); if selected
setText (String); set the display text
setIcon (Icon); set the picture
its event processing using ItenListener
4) box: JCheckBoxji event handler
method:
JCheckBox (); create text objects
whose events process is also used ItemListener Interface
5) list box: JList and event handling
method:
int [] getSeletrdIndices (); return all the selected array
Jlist (ListModel / Object [] listData / Vector listData); configured JList <?>
which event processing use ListSelectionListener Interface

Menu assembly
JMenu, JMenuBar, JMenuItem simple menu appearance can be achieved using event listener can correspond to implement some functions, such as code Notepad

Guess you like

Origin www.cnblogs.com/H-Alice/p/11914157.html