JFrame和actionlistener jpanel

时间:2014-02-14 15:56:17

标签: java jframe actionlistener

在主类的构造函数中,我将此actionlistener附加到一个按钮:

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

    }
});

这是Home课程:

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(),你仍然需要将鼠标悬停在它上面。

1 个答案:

答案 0 :(得分:1)

动态添加组件时,您需要revalidate()repaint()

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

附注:请查看Laying out Components withing a Container以了解如何使用布局管理器。正如您所做的那样,它们优于使用空布局。