无法打开 iframe 两次
Cant open twice an iframe
我试图制作一个应用程序,它将打开一个带有按钮的菜单 [例如插入搜索]。单击按钮时,将为每个按钮打开另一个 iframe。但是当涉及到第二次单击按钮插入时,iframe 崩溃了。
即使插入后,我点击搜索,iframe又崩溃了。
主机:
public Exercise(){
frame1= new JFrame();
frame1.setSize(400, 100);
panel1 = new JPanel();
panel1.setVisible(true);
in= new JButton("insert");
in.setSize(50, 10);
in.setLocation(100, 100);
panel1.add(in);
s = new JButton("search");
s.setSize(50, 10);
s.setLocation(200, 200);
panel1.add(s);
s.setVisible(true);
frame1.add(panel1);
frame1.setVisible(true);
in.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
insert();
});
s.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
search()
});
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
搜索功能:
public void search(){
frame3= new JFrame();
frame3.setSize(300, 300);
panel3 = new JPanel();
panel3.setLayout( null );
/* and other textfields and labels */
JButton go= new JButton("go");
go.setSize(100, 100);
go.setBounds(10, 200,200,20);
panel3.add(go);
frame3.add(panel3);
frame3.setVisible(true);
go.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
////// .... ////
frame3.setVisible(false)
/* I have already tried:
frame3.dispose().
frame3.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);*/
});
}
插入函数
public void insert(){
frame2= new JFrame();
frame2.setSize(300, 300);
panel2 = new JPanel();
panel2.setLayout( null );
/* and other labels and textfields */
JButton save= new JButton("save");
save.setSize(100, 100);
save.setBounds(10, 200,200,20);
panel2.add(save);
frame2.add(panel2);
frame2.setVisible(true);
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
////// .... ////
frame2.setVisible(false)
});
}
我能做什么?
提前致谢
每次按下按钮时都创建一个新框架不是一个好习惯:您可以使用 search() 和 insert() 来完成。因此,您可以做的 bset 是为第 2 帧保留一帧,为第 3 帧保留一帧等,并根据需要制作它们 visible/invisible。
即在函数 search() insert() 之外创建框架 - 可能在构造函数中。
我试图制作一个应用程序,它将打开一个带有按钮的菜单 [例如插入搜索]。单击按钮时,将为每个按钮打开另一个 iframe。但是当涉及到第二次单击按钮插入时,iframe 崩溃了。 即使插入后,我点击搜索,iframe又崩溃了。
主机:
public Exercise(){
frame1= new JFrame();
frame1.setSize(400, 100);
panel1 = new JPanel();
panel1.setVisible(true);
in= new JButton("insert");
in.setSize(50, 10);
in.setLocation(100, 100);
panel1.add(in);
s = new JButton("search");
s.setSize(50, 10);
s.setLocation(200, 200);
panel1.add(s);
s.setVisible(true);
frame1.add(panel1);
frame1.setVisible(true);
in.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
insert();
});
s.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
search()
});
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
搜索功能:
public void search(){
frame3= new JFrame();
frame3.setSize(300, 300);
panel3 = new JPanel();
panel3.setLayout( null );
/* and other textfields and labels */
JButton go= new JButton("go");
go.setSize(100, 100);
go.setBounds(10, 200,200,20);
panel3.add(go);
frame3.add(panel3);
frame3.setVisible(true);
go.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
////// .... ////
frame3.setVisible(false)
/* I have already tried:
frame3.dispose().
frame3.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);*/
});
}
插入函数
public void insert(){
frame2= new JFrame();
frame2.setSize(300, 300);
panel2 = new JPanel();
panel2.setLayout( null );
/* and other labels and textfields */
JButton save= new JButton("save");
save.setSize(100, 100);
save.setBounds(10, 200,200,20);
panel2.add(save);
frame2.add(panel2);
frame2.setVisible(true);
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
////// .... ////
frame2.setVisible(false)
});
}
我能做什么?
提前致谢
每次按下按钮时都创建一个新框架不是一个好习惯:您可以使用 search() 和 insert() 来完成。因此,您可以做的 bset 是为第 2 帧保留一帧,为第 3 帧保留一帧等,并根据需要制作它们 visible/invisible。
即在函数 search() insert() 之外创建框架 - 可能在构造函数中。