我有 JFrame ,上面有一个 JPanel ( JPanel 在 JFrame 中是私有的) . 现在我想使用 paintComponent 方法覆盖 JPanel .
JFrame
JPanel
paintComponent
我怎样才能做到这一点?
当您创建 JPanel 的实例时,(假设您这样做),请执行以下操作:
JPanel panel = new JPanel(){ @Override public void paintComponent(Graphics g){ // paint code } };
另一种方法是创建 private class extends JPanel .例如:
private class
public class OuterClass{ // fields, constructors, methods etc.. private class MyPanel extends JPanel{ // fields, constructors, methods etc.. @Override public void paintComponent(Graphics g){ // paint code } } }
从你的问题不清楚,但我认为nothing complicated override paintComponent for Swing JComponents,请避免使用方法 paint() for Swing JComponents,仅使用 paintComponent()
paint()
paintComponent()
2 回答
当您创建
JPanel
的实例时,(假设您这样做),请执行以下操作:另一种方法是创建
private class
extendsJPanel
.例如:
从你的问题不清楚,但我认为nothing complicated override paintComponent for Swing JComponents,请避免使用方法
paint()
for Swing JComponents,仅使用paintComponent()