我的程式碼如下,執行起來就是有種說不上來的怪...
就是可以拖曳,但是只要滑鼠停下來(左鍵依然按住)我的矩形就會消失...
所以我想請問大大們除了
mousePressed = 按下時觸發
mouseDragged = 拖曳時觸發
mouseReleased = 放開時觸發
這些以外
有沒有"左鍵按住不放且滑鼠不動"的觸發寫法
我想要是有的話應該就可以改善我的這個程式惹
可以告訴我嗎 謝謝各位大大!
/*
* 此程式目的是在JFrame上畫一個矩形並且可以利用滑鼠事件方式拖曳
*/
package Strive;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.awt.event.*;
class CDrawF extends JFrame {
private Point p1; //宣告Point
CDrawF() {
addMouseListener(new CDraw());
addMouseMotionListener(new CDraw());
setTitle("拖曳矩形"); setLayout(null);
setBounds(50, 50, 300, 200); setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class CDraw extends MouseAdapter { //繼承MouseAdapter
MouseAdapter
public void mousePressed(MouseEvent e){ //滑鼠按下觸發畫出矩形
p1 = e.getPoint();
Graphics2D g2 = (Graphics2D) getGraphics();
g2.setPaint(Color.red);
g2.fill(new Rectangle2D.Double(p1.x, p1.y, 80, 80));
}
public void mouseDragged(MouseEvent e){ //滑鼠拖曳觸發畫出矩形
p1 = e.getPoint();
Graphics2D g2 = (Graphics2D) getGraphics();
g2.setPaint(Color.red);
g2.fill(new Rectangle2D.Double(p1.x, p1.y, 80, 80));
repaint();
}
public void mouseReleased(MouseEvent e){ //滑鼠放開觸發畫出矩形
p1 = e.getPoint();
Graphics2D g2 = (Graphics2D) getGraphics();
g2.setPaint(Color.red);
g2.fill(new Rectangle2D.Double(p1.x, p1.y, 80, 80));
}
}
}
public class Exercise { //Main進入點
public static void main(String[] args){
new CDrawF();
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.136.245.189
→
02/16 10:13, , 1F
02/16 10:13, 1F
→
02/16 10:15, , 2F
02/16 10:15, 2F