第十三周课程总结

我的梦境 提交于 2019-12-05 09:03:37

1、事件处理

(1)、键盘事件及监听处理

在Swing的事件处理中也可以对键盘的操作进行监听,直接使用KeyListener接口即可。此接口定义了如下的方法。

如果要想取得键盘键入的内容,则可以通过KeyEvent取得,此类的常用方法如下所示。

实例:

package work10;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class mykeyhandle implements KeyListener{

    JFrame frame;
    JScrollPane scpane;
    JTextArea area;
    
    public mykeyhandle() {
        frame=new JFrame("键盘事件处理");
        area=new JTextArea();
        scpane=new JScrollPane(area);
        area.addKeyListener(this);
        frame.addWindowListener(new WindowAdapter() {
                public void windowClosed(WindowEvent e) {
                    System.exit(0);
                }
        });
        frame.add(scpane);
        frame.setSize(600,450);
        frame.setLocation(400, 300);
        frame.setVisible(true); 
    }
    
    public static void main(String[] args) {
        new mykeyhandle();
    }
    @Override
    public void keyTyped(KeyEvent e) {
        area.append("键入"+KeyEvent.getKeyText(e.getKeyCode())+"键"+"\n"); 
    }
    @Override
    public void keyPressed(KeyEvent e) {    
        area.append("按下"+KeyEvent.getKeyText(e.getKeyCode())+"键"+"\n");
    }
    @Override
    public void keyReleased(KeyEvent e) {
        area.append("松开"+KeyEvent.getKeyText(e.getKeyCode())+"键"+"\n");
    }

}

(2)、鼠标事件及监听处理

如果想对一个鼠标的操作进行监听,例如,鼠标按下、松开等,则可以实现MouseListener接口

在每个事件触发后都会产生MouseEvent事件,此事件可以得到鼠标的相关操作

在一般的图形界面中经常可以看到鼠标拖拽操作的情况,在Swing的事件处理中可以使用MouseMotionListener接口可以完成鼠标的拖拽操作

实例

package work10;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

class MyMouseHandle extends JFrame implements MouseListener {
    private JTextArea text = new JTextArea();

    public MyMouseHandle() {
        super.setTitle("鼠标事件处理");
        JScrollPane pane = new JScrollPane(text);
        pane.setBounds(5, 5, 300, 200);
        super.add(pane);
        text.addMouseListener(this);
        super.setSize(310, 210);
        super.setVisible(true);
        super.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent arg0) {
                System.exit(1);
            }
        });
    }

    public void mouseClicked(MouseEvent e)
    {
        int c = e.getButton();
        String mouseInfo = null;
        if (c == MouseEvent.BUTTON1)
        {
            mouseInfo = "左键";
        } else if (c == MouseEvent.BUTTON3) {
            mouseInfo = "右键";
        } else {
            mouseInfo = "滚轴";
        }
        text.append("鼠标单击:" + mouseInfo + ".\n");
    }

    public void mouseEntered(MouseEvent e)
    {
        text.append("鼠标进入组件.\n");
    }

    public void mouseExited(MouseEvent e)
    {
        text.append("鼠标退出组件.\n");
    }

    public void mousePressed(MouseEvent e)
    {
        text.append("鼠标按下.\n");
    }

    public void mouseReleased(MouseEvent e)
    {
        text.append("鼠标松开.\n");
    }
}
public class MyMouseEventDemo {
    public static void main(String[] args) {
        new MyMouseHandle();
//}
}

2、菜单组件

(1)、JMenu与JMenuBar

若在Java中实现菜单,则可以使用JMenu组件,当然,如果要使用JMenu则首先要了解JMenuBar组件,JMenuBar组件的功能是用来摆放JMenu组件,当建立完许多的JMenu组件之后,需要通过JMenuBar组件来将JMenu组件加入到窗口中

JMenu的常用方法

JMenuBar的常用方法

(2)、JMenuItem

JMenuItem继承AbstractButton类,因此JMenuItem也可以理解为一种特殊的JButton组件,当选择某个菜单项时也会触发ActionEvent事件

JMenuItem类的常用方法

(3)、文件选择框JFileChooser

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!