[英]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.