Четкая графика из JPanel с помощью ActionListener - PullRequest
0 голосов
/ 19 марта 2012

Мой вопрос: как очистить графику с помощью прослушивателя действий и создать новый набор графики, снова запустив OtherPanel?

public class MainFrame extends JFrame
  {

   private OtherPanel panel;

       public MainFrame()
   {

        panel = new OtherPanel();
       }

   class OtherPanel extends JPanel 
   {
      private OtherPanel()
      {
    ...

      }

      public void paintComponent(Graphics g) {
          super.paintComponent(g);

          Graphics2D g2d = (Graphics2D) g;            
              ....

          }

      private class ReloadListener implements ActionListener
   {
      public void actionPerformed(ActionEvent e)
      {
           }
        }

    }

Ответы [ 2 ]

4 голосов
/ 19 марта 2012
class OtherPanel extends JPanel 
{
    private boolean isReset;

    private OtherPanel()
    {
    ...
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if(!isReset){
            //your painting code here
        }
    }

    public void setReset(boolean reset){
        isReset = reset;
    }

    private class ReloadListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            setReset(true);
            repaint();
        }

    }
}

Все зависит от того, как должна выглядеть панель «перезагрузки».Я оставил только super.paintComponent(), как выглядит по умолчанию, вы можете изменить это.Не забудьте добавить setReset(false) в ваш код где-нибудь, когда вы хотите нарисовать что-то на панели.

0 голосов
/ 19 марта 2012
private class ReloadListener implements ActionListener
 {
    public void actionPerformed(ActionEvent e)
     {
       newPic();
       panel.updateUI();            

  }

   public MainFrame newPic()
   {

      return new MainFrame();
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...