⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 panel1.java

📁 java灵感设计
💻 JAVA
字号:
package controlrectangle;import java.awt.*;import java.awt.geom.*;import java.util.*;import java.awt.event.*;import javax.swing.*;/** * <p>Title: Control Rectangle Demo</p> * <p>Description: This is a Control Rectangle demo</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: d6-125</p> * @author Liujun * @version 1.0 */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 java.awt.event.MouseMotionAdapter() {      public void mouseDragged(MouseEvent e) {        this_mouseDragged(e);      }    });    this.addMouseListener(new java.awt.event.MouseAdapter() {      public void mousePressed(MouseEvent e) {        this_mousePressed(e);      }      public void mouseReleased(MouseEvent e) {        this_mouseReleased(e);      }    });    this.setLayout(borderLayout1);           //add code here         //产生两个初始的点         points[0] = new Point2D.Double(100.0, 100.0);         points[1] = new Point2D.Double(200.0, 200.0);  }  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;//如果是,则设current为当前点            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;//使用Java 2D      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));      }      //重画长方形     Rectangle2D Rectangle = new Rectangle2D.Double();       Rectangle.setFrameFromDiagonal(points[0], points[1]);     g2.draw(Rectangle);     g2.drawString("第一个角:"+String.valueOf(points[0])+"  第二个角:"+String.valueOf(points[1]),10,10);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -