代码之家  ›  专栏  ›  技术社区  ›  Kalpana Devkota

将鼠标侦听器添加到图形对象

  •  0
  • Kalpana Devkota  · 技术社区  · 7 年前

    public class DrawingLines {
        public static void main(String[] args){
            LineFrame lf = new LineFrame();
            lf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            lf.setVisible(true);
    
        }   
    }
    
    class LineFrame extends JFrame{
        public LineFrame(){
            setTitle("Line test");
            setSize(500, 500);
    
           LinesPanel lp = new LinesPanel();
            Container contentpane = getContentPane();
            contentpane.add(lp);
    
        }
    }
    
    class LinesPanel extends JPanel{
        public LinesPanel(){
    
        }
        public void paintComponent(Graphics g){
          super.paintComponent(g);
          Graphics2D g2 = (Graphics2D)g;
           Line2D line = new Line2D.Double(105.5, 306.6, 350.8, 4.9);
           g2.draw(line);
           line.addMouseListener(new MouseListener(){
              @Override
              public void mouseClicked(MouseEvent e) {
                  System.out.println("Line Clicked !");
              }
    
              @Override
              public void mousePressed(MouseEvent e) {
              }
    
              @Override
              public void mouseReleased(MouseEvent e) {
              }
    
              @Override
              public void mouseEntered(MouseEvent e) {
              }
    
              @Override
              public void mouseExited(MouseEvent e) {
              }
    
           });
    
            }
    }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   StanislavL    7 年前

    将鼠标侦听器添加到线板。并使用MouseEvent坐标检查单击是否靠近直线。

    How to select a line

        2
  •  0
  •   Wep0n    7 年前