2012-11-23 39 views
0

我只是在用MouseListener搞亂,並且想要在點擊buttP時添加一個新的JButton到我的面板;但是,當我按buttP時,它不刷新面板。 我試圖重繪方法,但不起作用。任何人都知道我可以刷新面板,以便自動顯示新的JButtonMouselistener and mouseclicked

public class Panel extends JPanel{ 

private JButton buttP; 
public Panel(){ 
    buttP = new JButton("TEST"); 
    buttP.addMouseListener(new addNewButtMouseListener()); 
    add(buttP); 
} 

private class addNewButtMouseListener implements MouseListener{ 

    @Override 
    public void mouseClicked(MouseEvent e) { 
     JButton b = new JButton("HA"); 
     add(b); 
    } 

    @Override 
    public void mousePressed(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseReleased(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseEntered(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseExited(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

} 

}

非常感謝

回答

1

嘗試使用invalidate(),或revalidate()

順便說一句,不要使用MouseListener(+1 for @mKorbel)改爲使用ActionListener

+0

沒有,從來沒有,沒有理由使用'invalidate()',對於'AWT','Swing',對於Java1.4來說肯定是很重要的,參見代碼示例我的答案... – mKorbel

+0

謝謝,工作完美。 – vtshadow

+0

@vtshadow接受答案。 – Mordechai