【问题标题】:call paintcomponent for a jpanel in jframe在jframe中为jpanel调用paintcomponent
【发布时间】:2012-03-02 10:46:34
【问题描述】:

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

我该怎么做?

【问题讨论】:

  • 有点不清楚。能否请您发布示例代码?
  • 请正确掌握技术词汇:它是扩展一个类和覆盖一个方法

标签: java swing jframe jpanel paintcomponent


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    另一种选择是创建一个private class,它扩展 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
           }
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 2011-09-22
      相关资源
      最近更新 更多