вызовите paintcomponent для jpanel в jframe - PullRequest
3 голосов
/ 10 февраля 2012

У меня есть JFrame с JPanel (JPanel является приватным в JFrame).Теперь я хочу переопределить JPanel с помощью метода paintComponent.

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 10 февраля 2012

Когда вы создаете свой экземпляр 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
       }

    }
}
2 голосов
/ 10 февраля 2012

не ясно из вашего вопроса, но я думаю, что ничего сложного переопределить paintComponent для Swing JComponents , пожалуйста, избегайте использования метода paint() для Swing JComponents , используйте только paintComponent()

...