2014-02-14 51 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学习如何使用布局管理器。正如你所做的那样,它们比使用空布局更受欢迎。