在java中调用repaint后重复ActionPeformed

时间:2017-06-26 12:13:36

标签: java swing repaint

我在面板中有一个名为Undo的按钮,下面是代码。我的问题是,在我点击撤消后,重复了需要执行的操作。 我将撤消的inicialization代码放在​​我的Jpanel的构造函数中后解决了这个问题。我知道这与重新绘制有关,并且可能与线程有关,但我希望有一个更清晰的explonation,如果可能有更好的理解。

public void paintComponent(Graphics g)
{
    /*
    * Some other actions. 
    */
    undo.setLocation(535 , 680);
    undo.setSize(100 , 40);
    undo.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) 
            {
                System.out.println("Inside Action Performed");
                gameBoard.undoMove();
                repaint();
            }
        });
    add(undo);
}

0 个答案:

没有答案