當界面生成以后,自己想做一個點擊一個Jlabel增加一個Jlabel,即類似於QQ的添加好友以后可以及時的加進一個好友。自己做了好久,發現不能及時刷新。在網上查了一下,然后自己研究了一小會。發現需要validate這個函數重新布局。寫了一個這個小功能。
package qq.client.tools; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;@SuppressWarnings("serial") public class ButtonFrame extends JFrame{ public ButtonFrame() {//構造函數 buttonPanel = new JPanel();//創建一個jpanel this.setSize(200, 500);//設置窗口的大小 makeButton(); //調用函數 this.add(buttonPanel); } public void makeButton() { JLabel buttonFather = new JLabel("I'm father");//創建一個按鈕 buttonFather.addMouseListener(new MouseListener() { public void mouseReleased(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseClicked(MouseEvent e) { addButton(e); } }); buttonPanel.add(buttonFather); } private void addButton(MouseEvent e) { JLabel buttonSon = new JLabel("I'm son");//創建一個標簽 buttonPanel.add(buttonSon);//添加到面板 this.validate(); } private JPanel buttonPanel; public static void main(String[] args) { new ButtonFrame().setVisible(true); } }
跟刪除Jlabel一樣,沒有用那個函數需要自己刷新界面才會出現增加Jlabel。