【问题标题】:Refreshing JPanel in Java在 Java 中刷新 JPanel
【发布时间】:2012-06-22 22:27:35
【问题描述】:

我正在尝试通过按钮画​​线。

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    g2 = (Graphics2D) g;
    g2.setColor(Color.BLACK);
    g2.setStroke(new BasicStroke(2));
    for (int i=0;i<18;i++)
    {
        g2.draw(new Line2D.Double(2+i*20, 0, 2+i*20, 260));
        g2.draw(new Line2D.Double(0, 2+i*20, 360, 2+i*20));
    }
    g2.setColor(Color.RED);
}
public void drawDiagonallyLineDownLeft()
{
    int newXCoord=xDrawCoord+20;
    int newYCoord=yDrawCoord+20;
    g2.drawLine(xDrawCoord, yDrawCoord, newXCoord, newYCoord);
    xDrawCoord=newXCoord;
    yDrawCoord=newYCoord;
    repaint();
}

drawDiagonallyLineDownLeft 方法绘制 Line。我尝试在构造函数中使用它,它工作正常。 这里是 JButton 的监听器

public void actionPerformed(ActionEvent arg0) 
            {
                panel.drawDiagonallyLineDownLeft();
                panel.revalidate();
                panel.repaint();
            }

它也可以正常工作。我以方法在控制台中打印了消息,打印正常。但是当我按下按钮时没有线路。我想,我应该以某种方式刷新它,我使用了所有我知道的方法,但它仍然不起作用。

【问题讨论】:

    标签: refresh jpanel graphics2d


    【解决方案1】:

    当你调用repaint时,所有的绘图都被擦除,你必须在paintComponent(Graphics g)方法中进行绘制

    paintComponent(Graphics g) 在某些情况下会自动调用(窗口调整大小等)

    【讨论】:

      猜你喜欢
      • 2015-09-29
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 2013-11-14
      • 2017-03-11
      相关资源
      最近更新 更多