第十三周课程总结

本周主要学习了键盘事件及监听处理、单选按钮、菜单组件以及事件和监听器

一.监听适配器:

通过WindowAdapter实现监听

 

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package dishisanzhou;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
 
public class MyWindowListener implements WindowListener {
 
    
    public void windowOpened(WindowEvent e) {
        System.out.println("窗口打开");
    }
    
    public void windowClosing(WindowEvent e) {
        System.out.println("窗口关闭中");
        System.exit(1);
    }
 
    public void windowClosed(WindowEvent e) {
        System.out.println("窗口已关闭");
    }
   
    public void windowIconified(WindowEvent e) {
        System.out.println("窗口最小化");
    }
    
    public void windowDeiconified(WindowEvent e) {
        System.out.println("窗口最小化恢复"); 
    }
   
    public void windowActivated(WindowEvent e) {
        System.out.println("窗口被选中");   
    }
  
    public void windowDeactivated(WindowEvent e) {
        System.out.println("窗口被取消");   
    }
 
     
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import javax.swing.*;
import java.awt.*;
 
public class MyWindowListenertext {
 
    public static void main(String[] args) {
        JFrame f=new JFrame("ONE OF A KIND");
 
        f.addWindowListener(new MyWindowListener());
        f.setSize(460,315);
        f.setVisible(true);
 
    }
 
}

  

二.键盘处理及监听事件

Swing的事件中也可以对键盘的操作进行监听,直接用KeyListener接口即可。

KeyListener接口方法

void keyPressed(KeyEvent e):键入某个键时调用

 void keyReleased(KeyEvent e) :键盘按下时调用

 void keyTyped(KeyEvent e):键盘松开时调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package dishisanzhou;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Jkey extends JFrame {
    JTextArea area;
    JScrollPane scr;
     
    public Jkey(){
        area=new JTextArea();
        scr=new JScrollPane(area);
         
        scr.setBounds(5,5,300,200);
        super.setTitle("键盘事件");
        area.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
                area.append("输入的内容是:"+e.getKeyChar()+"\n");
            }
        });
        super.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(1);
            }
        });
        super.add(scr);
        super.setSize(400,300);
        super.setVisible(true);
    }
     
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
package dishisanzhou;
import javax.swing.*;
 
import java.awt.*;
 
public class test {
 
    public static void main(String[] args) {
        
            new Jkey();
    }
 
}

 

三.菜单组件:

若在java中实现此菜单,则可使用JMenu组件,不过,如果要使用JMenu则首先要了解JMenuBar组件。

JMenuBar的常用方法

1.

public JMenuBar()
构造器。建立一个菜单栏。
2.
public JMenu add(JMenu c)
将c附加在菜单栏尾端并返回菜单。
3.public JMenu getMenu(int index)
返回第index个菜单,索引值0表示第一个菜单。
4.public int getMenuCount()
返回菜单计数。
JMenu的常用方法:
public JMenu(String s)    创建新的JMenu,并指定菜单名称
public JMenuItem add(JMenuItem menuItem)    增加新的菜单项
public void addSeparator()    加入分隔线
 
使用jmenu和jmenubar可以构造一个简单的菜单,但是要加入菜单项,则要使用JMenuItem组件,书上给出了详细的代码,但是跟老师上课讲的有些不同,我对老师上课讲的方法还没有完全理解,书上的给出这方面的代码功能没老师上课讲的多,老师主要是围绕一个记事本的构造讲的,对记事本的各方面做出了详细的代码,但是代码实在是有点长,弄不太懂。