程序應做到以下幾點:計劃,跟蹤鼠標座標,並允許畫線在一個窗口
- 打開一個窗口。在窗口中獲取鼠標的位置(x和y座標)並將它們設置爲窗口的標題。
- 如果你點擊並按住鼠標左鍵,你應該可以繪製一條線。
問題是當我運行程序沒有。 1有效,但不是。 2.調整窗口大小後,座標會凍結,但我可以畫線。
希望有人能幫到這個。
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Point;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JPanel {
private Point lastPoint;
public Main() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
lastPoint = new Point(e.getX(), e.getY());
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Graphics g = getGraphics();
g.drawLine(lastPoint.x, lastPoint.y, e.getX(), e.getY());
lastPoint = new Point(e.getX(), e.getY());
g.dispose();
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
frame.setResizable(true);
frame.setVisible(true);
frame.getContentPane().add(new Main(), BorderLayout.CENTER);
frame.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
int x = e.getX();
int y = e.getY();
String xstring = String.valueOf(x);
String ystring = String.valueOf(y);
frame.setTitle(xstring + ", " + ystring);
}
});
}
}