class MultiplicationTablePanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("Multiplication Table", 0, 0);
如果我想在Panel上绘制一些东西,我需要覆盖paintComponent函数。如果我想创建一个新函数而不是覆盖,例如 “protected void testPaintComponent(Graphics g)”
它不起作用,面板显示什么。背后的原因是什么?
答案 0 :(得分:1)
这是因为Swing将在绘制组件时调用paintComponent
。如果您发明了一种新方法,Swing将不会知道它并且不会被调用。
如果您想命名您的方法
protected void testPaintComponent(Graphics g) { ... }
您必须确保paintComponent
委托此方法,如下所示:
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
testPaintComponent(g);
}