在主窗口的菜单项上单击,出来一个子窗口,如果再次单击这个菜单项又会出来一个新的同样的子窗口。
问题就是怎样在单击菜单项的时候,只显示一个子窗口,不让他显示第2个同样的子窗口呢?
问题就是怎样在单击菜单项的时候,只显示一个子窗口,不让他显示第2个同样的子窗口呢?
解决方案 »
- 问一下我哪方面能力欠缺,谢谢了
- java计算节假日,周末
- 求教,本人新手,下面的程序调试不过是什么问题?
- Applet
- Jspinner.DateEditor中日期最初定位问题!(急)
- 所有窗体控件都有一个句柄叫Handle,如何获取一个JFrame显示时候的Handle呢?
- 紧急求救,关于weblogic过滤器的小问题,谢谢!奖励500分
- 我在命令行下的jdk设置运行程序时,编译没问题,执行是老是出现NoClassDefFoundError哪个高手能告诉我怎么回师 ?我在命令行下的jdk设置
- CSDN高校俱乐部全新改版,欢迎你的加入!
- 如何把.class文件打包成.exe文件?
- 对于oracle查询的结果resultset处理
- 在Swing或SWT里,如何高亮显示XML内容?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;public class Test extends JFrame {
private static final long serialVersionUID = -2865136880741559697L; private JButton button = null;
private JFrame frame = null;
public Test() {
frame = new JFrame("Window");
frame.setSize(200, 100);
button = new JButton("show window");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
frame.setVisible(true);
}});
this.getContentPane().add(button);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);
this.setVisible(true);
} public static void main(String[] args) {
new Test();
}
}
import javax.swing.*;
import java.awt.*;import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuBar;public class test extends JFrame {
//private static final long serialVersionUID = -2865136880741559697L; public test(){
JFrame jf=new JFrame("主窗体");
JMenuBar jmb=new JMenuBar();
JMenu jm=new JMenu("文件");
final JMenuItem jmi=new JMenuItem("打开");
jm.add(jmi);
jmb.add(jm);
jf.getContentPane().add(jmb);
jf.setSize(500,500);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
jmi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Object oo=e.getSource();
if(oo.equals(jmi))
{new test2();
}
}});
};
public static void main(String[] args) {
new test();
}
}----------
import javax.swing.JFrame;public class test2 extends JFrame{
public test2(){
JFrame jf=new JFrame("2窗体");
jf.setSize(300,300);
jf.setVisible(true);
}
public static void main(String[] args) {
new test2();
}
}-----
两个JAVA文件,在同一个包中,当单击窗口中的打开选项时显示test2中的窗口,那么再次单击的时候又出现同样的第2个窗口,现在问题就是怎么样让程序判断如果出现过窗口后,再次单击打开选项时就不出现第2个新窗口了,把原来第1次显示出来的窗口显示就可以了!
按照你的代码改了一下:import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.*;import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuBar;public class test extends JFrame {
private test2 t_2 = null; public test(){
t_2 = new test2();
JFrame jf=new JFrame("主窗体");
JMenuBar jmb=new JMenuBar();
JMenu jm=new JMenu("文件");
final JMenuItem jmi=new JMenuItem("打开");
jm.add(jmi);
jmb.add(jm);
jf.getContentPane().add(jmb);
jf.setSize(500,500);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
jmi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Object oo=e.getSource();
if(oo.equals(jmi)){
t_2.setVisible(true);
} }
}); } public static void main(String[] args) {
new test();
}
}import javax.swing.JFrame;public class test2 extends JFrame{ public test2(){
super("2窗体");
this.setSize(300,300);
}}
jmi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Object oo=e.getSource();
if(oo.equals(jmi)){
if(t_2.getExtendedState() == 1) {
t_2.setExtendedState(0);
}
if(t_2.getExtendedState() == 7){
t_2.setExtendedState(6);
}
t_2.setVisible(true);
}
}
});