比如一个JFrame主窗体,
里面有3个JTextField,
还有一个按钮我现在想:程序运行后,出现以上描述的窗体,我想通过那个按钮改变主窗体的样式,
比如我按一下 里面就只显示2个JTextField,第3个隐藏起来。
不知道这样能不能实现?
里面有3个JTextField,
还有一个按钮我现在想:程序运行后,出现以上描述的窗体,我想通过那个按钮改变主窗体的样式,
比如我按一下 里面就只显示2个JTextField,第3个隐藏起来。
不知道这样能不能实现?
/**从此容器中移除指定组件。此方法还通知布局管理器,通过 removeLayoutComponent 方法从此容器的布局中移除该组件。*/
pane.remove(Component comp); // 移除几个你看情况而定
pane.invalidate();
pane.validate();//需要的时候重新添加就可以了
pane.add(Component comp);
pane.invalidate();
pane.validate();
触发事件
jt2.setVisible(false);
jp.revalidate();
jp.repaint();
import java.awt.event.*;
public class Xuexi extends JPanel{
private JTextField jtf1;
private JTextField jtf2;
private JTextField jtf3;
private JButton jb;
Xuexi(){
this.jtf1=new JTextField(10);
this.jtf2=new JTextField(10);
this.jtf3=new JTextField(10);
this.jb=new JButton("隐藏");
this.add(this.jtf1);
this.add(this.jtf2);
this.add(this.jtf3);
this.add(this.jb);
setXuexiListener();
}
public void setXuexiListener(){
this.jb.addActionListener(new XuexiEvent(this));
}
public void getXuexiLEvent(){
this.jtf3.setSize(0, 0);//把其中一个的窗口设成0大小就可以了
}
}
class XuexiEvent implements ActionListener{
private Xuexi xx;
XuexiEvent(Xuexi xx){
this.xx=xx;
}
public void actionPerformed(ActionEvent arg0) {
xx.getXuexiLEvent();
xx.repaint();
}
}
class XuexiDemo{
public static void main(String args[]){
JFrame frame=new JFrame("Exam");
frame.setSize(300,400);
frame.add(new Xuexi());
frame.setResizable(false);
frame.setVisible(true);
}
}
/**从此容器中移除指定组件。此方法还通知布局管理器,通过 removeLayoutComponent 方法从此容器的布局中移除该组件。*/
pane.remove(Component comp); // 移除几个你看情况而定
pane.invalidate();
pane.validate();