Draw a line in a JPanel with button click in Java

前端 未结 3 1115
孤城傲影
孤城傲影 2020-11-22 02:07

I want to draw a line in a JPanel. This is my GUI and I want a line in the JPanel in white.

\"enter

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-22 02:16

    Is this going to work like an etch-a-sketch? Then you need to track the current position of the point.

       Point current = new Point(0, 0); //for example.
    

    Then when the user clicks the buttons you can simply increment or decrement x and y accordingly.

    On left arrow:

       current.setX(current.getX() - INC);
    

    where INC could be a variable that specifies the length of the distance to draw the line. Maybe 5? Always set a second point p1 to the previous location though.

    It is always easier to create a class that extends Canvas or JPanel to draw on rather than draweing directly on the JFrame.

    e.g.

    public class Circuit extends JFrame {
      Point p1, current;
    
      JPanel drawPanel;
    
      //your other declarations
    
      public Circuit(){
             super();
             drawPanel = new DrawPanel();
             p1 = new Point(0, 0);
             current = new Point(0, 0);
             add(drawPanel, BorderLayout.CENTER);
             //your other code
      }
    
      class DrawingPanel extends JPanel{
    
            public void paintComponent(Graphics g){
                 g.drawLine(p1.getX(), p1.getY(), current.getX(), current.getY());
            }
      }
    
    
       //the rest of your code.
    }
    

提交回复
热议问题