📄 mousetest3.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import javax.swing.*;
public class MouseTest3 extends JApplet {
public void init() {
PanelLukis panel = new PanelLukis();
getContentPane().add(panel);
}
}
class PanelLukis extends JPanel {
private boolean mula;
private int xMula, yMula;
private int xSemasa, ySemasa;
public PanelLukis() {
setBackground(Color.white);
addMouseListener(new MouseHandler2());
addMouseMotionListener(new MouseMotionHandler2());
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
if (mula == false) {
g2.setPaint(Color.red);
g2.drawString("Klik & drag untuk melukis segiempat", 10, 20);
}
lukisSegi4(g2);
}
private void lukisSegi4(Graphics2D g2) {
Rectangle2D segi4 = new Rectangle2D.Double(0, 0, 0, 0);
if (xMula != xSemasa && xMula != ySemasa) {
int x, y;
int w, h;
if (xSemasa > xMula) {
x = xMula;
w = xSemasa - xMula;
}
else {
x = xSemasa;
w = xMula - xSemasa;
}
if (ySemasa > yMula) {
y = yMula;
h = ySemasa - yMula;
}
else {
y = ySemasa;
h = yMula - ySemasa;
}
segi4.setFrame(x, y, w, h);
g2.setPaint(Color.blue);
g2.fill(segi4);
g2.setPaint(Color.black);
g2.draw(segi4);
}
}
private class MouseHandler2 extends MouseAdapter {
public void mousePressed(MouseEvent e) {
if (mula == false) {
mula = true;
}
xMula = xSemasa = e.getX();
yMula = ySemasa = e.getY();
repaint();
}
public void mouseReleased(MouseEvent e) {
repaint();
}
}
private class MouseMotionHandler2 implements MouseMotionListener {
public void mouseDragged(MouseEvent e) {
xSemasa = e.getX();
ySemasa = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -