📄 panel1.java
字号:
package controlline;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
public class Panel1
extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
int n = 2;
int current = -1;
static double SIZE = 12.0;
Point2D[] points = new Point2D[2];
public Panel1() {
try {
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
this.setForeground(Color.red);
this.addMouseMotionListener(new Panel1_this_mouseMotionAdapter(this));
this.addMouseListener(new Panel1_this_mouseAdapter(this));
this.setLayout(borderLayout1);
points[0] = new Point2D.Double(100, 100);
points[1] = new Point2D.Double(200, 200);
}
void this_mousePressed(MouseEvent e) {
Point p = e.getPoint();
for (int i = 0; i < n; i++) {
double x = points[i].getX() - SIZE / 2;
double y = points[i].getY() - SIZE / 2;
Rectangle2D r = new Rectangle2D.Double(x, y, SIZE, SIZE);
if (r.contains(p)) {
current = i;
return;
}
}
}
void this_mouseReleased(MouseEvent e) {
current = -1;
}
void this_mouseDragged(MouseEvent e) {
if (current == -1)
return;
points[current] = e.getPoint();
this.repaint();
}
protected void paintComponent(Graphics g) {
/**@todo Override this javax.swing.JComponent method*/
super.paintComponent(g);
if (points == null)
return;
Graphics2D g2 = (Graphics2D) g;
// g2.setColor(Color.yellow);
for (int i = 0; i < n; i++) {
double x = points[i].getX() - SIZE / 2;
double y = points[i].getY() - SIZE / 2;
g2.fill(new Rectangle2D.Double(x, y, SIZE, SIZE));
}
g2.draw(new Line2D.Double(points[0], points[1]));
g2.drawString("第一个点: " + String.valueOf(points[0]) + " "+"第二个点: " +
String.valueOf(points[1]),10,10);
}
}
class Panel1_this_mouseAdapter
extends java.awt.event.MouseAdapter {
Panel1 adaptee;
Panel1_this_mouseAdapter(Panel1 adaptee) {
this.adaptee = adaptee;
}
public void mousePressed(MouseEvent e) {
adaptee.this_mousePressed(e);
}
public void mouseReleased(MouseEvent e) {
adaptee.this_mouseReleased(e);
}
}
class Panel1_this_mouseMotionAdapter
extends java.awt.event.MouseMotionAdapter {
Panel1 adaptee;
Panel1_this_mouseMotionAdapter(Panel1 adaptee) {
this.adaptee = adaptee;
}
public void mouseDragged(MouseEvent e) {
adaptee.this_mouseDragged(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -