菜单项,窗口 在主窗口的菜单项上单击,出来一个子窗口,如果再次单击这个菜单项又会出来一个新的同样的子窗口。问题就是怎样在单击菜单项的时候,只显示一个子窗口,不让他显示第2个同样的子窗口呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要在点击动作中出现new JFrameimport 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 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 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次显示出来的窗口显示就可以了! 在动作中不要出现new,那代表一个新的JFrame实例被初始化。按照你的代码改了一下: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); } }}); 这段程序有什么问题? Vector 该类的功能方法是同步的,同一时刻只能有一个线程访问。 求教高手 裸奔五千米求助~~ stop();与interrupt()有什么不同 奇怪!!关于中文字符的问题! 产生随机二位数组的方法 :看看下面的方法错在哪里?怎么改?谢谢。。。 新手求教---------怎样下载JAVA开发环境 message 和 interface 之间有何区别? 谁能告诉我JDK有没有源码! 对于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);
}
}
});