添加&在Java(Swings)程序中在运行时删除JTextField

时间:2010-07-21 23:41:57

标签: java swing layout awt

如何在不使用NetBeans的情况下在Swing程序(Java)中在运行时添加和删除组件(JButons,JTextField等)?我应该使用哪种布局? 我希望用户输入用户名&密码,当他点击提交按钮时,应该出现带有新组件的新屏幕(JButtons,JTextField等),我无法在运行时实现转换。

4 个答案:

答案 0 :(得分:3)

一种方法是使用CardLayout。您的登录按钮处理程序将检查凭据并使用show()显示第二个窗格。

附录:为安全起见,请考虑使用JPasswordField作为密码;为方便起见,有用setLocationRelativeTo()来定位框架。

答案 1 :(得分:3)

另一种方法是在您希望隐藏特定组件时调用setVisible(false)

如果我想添加/删除整个子面板,我使用了以下内容:

panel.remove(subPanel);
panel.revalidate();
panel.repaint();

无论何时添加/删除组件,都要调用最后两种方法。

答案 2 :(得分:3)

答案 3 :(得分:2)

你可以为exsample MyFrame创建一个新类,它扩展了JFrame,它预设你的新窗口,你必须在你的所有控制器的contentpanel中添加该类的构造函数....

通过这种方式,您可以为JFrame添加一个jbutton。

class MyFrame extends JFrame{

    private JButton jb= new JButton("hello");

    public MyFrame(){
        setSize(new Dimension(300,180));  //set the MyFrame size
        getContentPane().add(jb);  //add your Component at ContentPane
    }

}
登录后,您可以通过以下方式显示新框架:

new MyFrame().setVisible(true);