現在、Javaでマウスを押した点からマウスを離した点までの直線を描画するプログラムを以下のように作成しています。
しかし、マウスを押した点と離した点の座標はとってこれているのですが、直線が描画されません。
おそらく些細なミスと予想されますが、本人では全くにづかないため、お気づきの方がいれば教えていただきたいです!
Java
1import java.awt.Container; 2import java.awt.Graphics; 3import java.awt.event.MouseEvent; 4import java.awt.event.MouseListener; 5 6import javax.swing.JFrame; 7import javax.swing.JPanel; 8 9class MousePos extends JPanel implements MouseListener{ 10 private int x, y, u, v; 11 private int w; 12 13 public static void main(String[] args) { 14 JFrame f = new JFrame(); 15 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 16 f.setSize(400, 400); 17 f.setTitle("MousePos"); 18 Container c = f.getContentPane(); 19 20 MousePos ml = new MousePos(); 21 c.add(ml); 22 f.setVisible(true); 23 } 24 25 public MousePos(){ 26 addMouseListener(this); 27 x = -10; 28 y = -10; 29 w = 4; 30 } 31 32 public void paintComponent(Graphics g){ 33 super.paintComponent(g); 34 g.drawLine(x,y,u,v); 35 } 36 37 public void mousePressed(MouseEvent e){ 38 x = e.getX() - w/2; 39 y = e.getY() - w/2; 40 System.out.println("x: " + x + " y: " + y); 41 } 42 43 public void mouseReleased(MouseEvent e){ 44 u = e.getX() - w/2; 45 v = e.getY() - w/2; 46 System.out.println("u: " + u + " v: " + v); 47 48 } 49 50 public void mouseClicked(MouseEvent e){} 51 public void mouseEntered(MouseEvent e){} 52 public void mouseExited(MouseEvent e){} 53 54}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/12 14:07
2019/11/12 15:32
2019/11/15 14:31