簡體   English   中英

ActionListener中的Paint方法

[英]Paint Method within an ActionListener

我試圖在ActionListener中使用Java繪制方法。 但是,當paint放在ActionListener中時,我的編譯器會拋出錯誤,盡管導入java.awt.geom,eclipse根本不會將paint識別為方法。

private class NumHandler implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
              //Draw Ovals
              public void paint (Graphics g)
              {
                   int number;
                   int x = 10;
                   int y = 30;
                   int width = 20;
                   int height = 10;

                   number = Integer.parseInt(numberTF.getText());

                   for (int i = 0; i < number; i++)
                   {
                        g.drawOval(x, y, width, height);

                        x += 5;
                        y += 5;
                        width += 5;
                        height += 5;
                   }
              }
    }

}

您的paint方法不能在actionPerformed方法中。 它需要作為組件的類成員方法而不是NumHandler 您可以在ActionListener方法中放置一個repaint()調用,以請求執行重繪。

不要在paint方法中放置任何可能導致異常的邏輯,即:

number = Integer.parseInt(numberTF.getText());

最好在actionPerformed方法中完成。

此外,如果使用Swing, paintComponent是優化塗料性能的首選。 記得調用super.paintComponent(g); 重繪任何子組件。

請參閱: AWT和Swing中的繪畫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM