我想知道您应该如何为同一类中的每个面板覆盖paint方法,以及如何分别调用它们?
我只在扩展JPanel的类中(仅在一个面板中)知道repaint()调用,而不是在仅创建面板时知道。
提前致谢。
最佳答案
通常,您创建一个扩展JPanel
的类以覆盖paintComponent
方法:
public class Test extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// code here
}
public void doStuff() { repaint(); }
}
您可以考虑像这样创建一个嵌套类:
public class Test {
public class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// code here
}
}
JPanel panel = new MyPanel();
panel.repaint();
}
或者,您可以执行以下操作而无需创建扩展
JPanel
的类:JPanel panel1 = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// code here
}
};
panel1.repaint();
关于java - 同一类中具有多个面板的重绘方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27536818/