2014-02-14 84 views
0

在主類的構造函數我有這樣的ActionListener附加到按鈕:的JFrame和ActionListener的JPanel的

home.addActionListener(new ActionListener(){ 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     Home homepage = new Home(); 
     homepage.setBounds(0, 100, 500, 400); 
     add(homepage); 

    } 
}); 

這是家庭類:

package test; 

import javax.swing.JButton; 
import javax.swing.JPanel; 

public class Home extends JPanel{ 

    public Home(){ 
     JButton jb = new JButton("Back"); 
     add(jb); 
    } 
} 

的JB按鈕不會顯示在jframe ...你能幫我嗎?

編輯:它實際上存在,但你需要將鼠標移到它上面才能看到它......我們如何請求焦點?像我做jb.requestFocus(),你仍然需要將鼠標移到它上面。

+0

嘗試'setVisible(true)'。 –

+0

JFrame是否設置爲可見?你有沒有將Jpanel添加到框架? Code的那部分在哪裏? –

回答

1

當動態添加組件,您需要revalidate()repaint()

add(homepage); 
    revalidate(); 
    repaint(); 

側面說明:有一個在Laying out Components withing a Container學習如何使用佈局管理器。正如你所做的那樣,它們比使用空佈局更受歡迎。