有什么办法可以在paintComponent中获取参数?

时间:2019-08-16 18:29:11

标签: java swing awt paintcomponent

我在如何在window.onload(function() { setTimeout(function() { // whatever you want to happen after 3600 // i.e. disable input fields for quiz }, 3600); } 方法中设置其他参数时遇到问题。

我还没有找到其他方法。

paintComponent

当我使用参数运行代码时,它不会绘制矩形。

但是,如果只有import javax.swing.*; import java.awt.*; public class Interface extends JPanel { protected void paintComponent(Graphics g *here(not part of code btw)*) { super.paintComponent(g); g.setColor(Color.orange); g.fillRect(0, 0, 100, 100); } public void CreateWindow(String name, int Xsize, int Ysize) { //laver et JFrame og klader det "frame" ! JFrame frame= new JFrame(); frame.setTitle(name); frame.setSize(Xsize, Ysize); frame.setLocation(200, 200); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); Interface JPanel = new Interface(); frame.add(JPanel); Graphics Grafik = getGraphics(); paintComponent(Grafik); } } 参数,它将运行正常。

1 个答案:

答案 0 :(得分:2)

Javadoc中可以看到,JComponent中只有一个为paintComponent定义的方法。这意味着,没有创建自己的JComponent和JComponent的扩展(子类)的方法(没有必要的复杂和困难),您可以通过不是的方式来执行此操作。相反,请考虑您可以在类中使用字段来存储进入方法paintComponent时所需的持久状态。另一方面,最好将临时变量定义为该方法的局部变量。

此外,命名类Interface也不是一个好习惯,因为interface是Java中的保留keyword

tl; dr-本质上不是。使用字段/局部变量存储您的其他数据。