首页 文章

在jframe中为jpanel调用paintcomponent

提问于
浏览
3

我有 JFrame ,上面有一个 JPanelJPanelJFrame 中是私有的) . 现在我想使用 paintComponent 方法覆盖 JPanel .

我怎样才能做到这一点?

2 回答

  • 2

    当您创建 JPanel 的实例时,(假设您这样做),请执行以下操作:

    JPanel panel = new JPanel(){
        @Override
        public void paintComponent(Graphics g){
           // paint code
        }
    };
    

    另一种方法是创建 private class extends JPanel .
    例如:

    public class OuterClass{
        // fields, constructors, methods etc..
    
        private class MyPanel extends JPanel{   
           // fields, constructors, methods etc..
    
           @Override
           public void paintComponent(Graphics g){
              // paint code
           }
    
        }
    }
    
  • 4

    从你的问题不清楚,但我认为nothing complicated override paintComponent for Swing JComponents,请避免使用方法 paint() for Swing JComponents,仅使用 paintComponent()

相关问题