📄 mousemotioneventtest.java
字号:
package ch02.section04;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/*
* MouseMotionEventTest是一个容器内,继承了JPenel,
* 实现了MouseMotionListener接口
*/
public class MouseMotionEventTest
extends JPanel
implements MouseMotionListener {
//声明一个标签
BlankArea blankArea;
//声明一个文本区域
JTextArea textArea;
static final String newline = "\n";
public MouseMotionEventTest() {
super(new GridBagLayout());
GridBagLayout gridbag = (GridBagLayout) getLayout();
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.gridwidth = GridBagConstraints.REMAINDER;
c.weightx = 1.0;
c.weighty = 1.0;
c.insets = new Insets(1, 1, 1, 1);
blankArea = new BlankArea(new Color(0.98f, 0.97f, 0.85f));
gridbag.setConstraints(blankArea, c);
add(blankArea);
c.insets = new Insets(0, 0, 0, 0);
textArea = new JTextArea();
textArea.setEditable(false);
JScrollPane scrollPane = new JScrollPane(textArea,
JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.
HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setPreferredSize(new Dimension(200, 75));
gridbag.setConstraints(scrollPane, c);
add(scrollPane);
//为容器注册鼠标移动事件监听
blankArea.addMouseMotionListener(this);
addMouseMotionListener(this);
setPreferredSize(new Dimension(450, 450));
setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
}
public void mouseMoved(MouseEvent e) {
saySomething("Mouse moved", e);
}
public void mouseDragged(MouseEvent e) {
saySomething("Mouse dragged", e);
}
void saySomething(String eventDescription, MouseEvent e) {
textArea.append(eventDescription
+ " (" + e.getX() + "," + e.getY() + ")"
+ " detected on "
+ e.getComponent().getClass().getName()
+ newline);
textArea.setCaretPosition(textArea.getDocument().getLength());
}
private static void createAndShowGUI() {
//将JFrame设置成更好的视觉效果
JFrame.setDefaultLookAndFeelDecorated(true);
//创建一个标题为"MouseMotionEventTest"的JFrame
JFrame frame = new JFrame("MouseMotionEventTest");
//设置frame的关闭方法
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
JComponent newContentPane = new MouseMotionEventTest();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//显示窗口
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -