Java 从ActionListerner调整容器大小
我不确定这是否可行,但我想做的是动态调整容器的大小。因此,当用户单击登录时,容器将调整大小以显示新的按钮和面板 目前,我的代码看起来像这样 集装箱代码Java 从ActionListerner调整容器大小,java,swing,containers,Java,Swing,Containers,我不确定这是否可行,但我想做的是动态调整容器的大小。因此,当用户单击登录时,容器将调整大小以显示新的按钮和面板 目前,我的代码看起来像这样 集装箱代码 c = getContentPane(); c.add(panel); //panel contains login panel, user panel and system panel setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(
c = getContentPane();
c.add(panel); //panel contains login panel, user panel and system panel
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setSize(400, 200); //width, height
setLocation(600,0);
setResizable(false);
validate();
ActionListener
loginButton.setText("Login");
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
c.setSize(400,630);
c.validate();
userScrollPane.setVisible(true);
sysScrollPane.setVisible(true);
resultsButtonPanel.setVisible(true);
loginButton.setEnabled(false);
resetButton.setEnabled(true);
resultsButton.setEnabled(true);
tfUser.setEditable(false);
tfPass.setEditable(false);
mb.setVisible(true);
}
});
//面板包括登录面板、用户面板和系统面板
面板只能用于一个目的。如果有多个功能,请创建多个面板
然后,您可以根据需要使用a来交换GUI中的面板。您可以使用setPreferedSize,然后将Actionlistener打包以动态调整面板的大小尝试删除
c.validate()
,并在最后添加c.invalidate()
。@DavidConrad cheers man,但没有成功:(我不需要更换面板。成功登录后,用户应能看到所有面板。@camickr