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