import java.awt.*; import java.awt.event.*; import javax.swing.*; public class a { JFrame a = new JFrame("Test"); JButton cts = new JButton("button"); b b; public a() { cts.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { b = new b(); b.Display(); } }); a.add(cts); a.setSize(300,200); a.setVisible(true); } public static void main(String args[]) { new a(); } } import java.awt.*; import java.awt.event.*; import javax.swing.*; public class b { public b() { JFrame b = new JFrame(); b.setSize(200,100); b.setVisible(true); } public void Display() { new b(); } } 源程序在这里了 请各位帮我看看
调了一下格式,在我这里运行正常,另外小改了一下,注意我加注释的地方 import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.swing.JButton; import javax.swing.JFrame;public class A { JFrame a = new JFrame("Test"); JButton cts = new JButton("button"); B b; public A() { cts.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //在B里面,你的display方法的意图是new B(); //你这里既new B(),又b.display(); //不知道你这样重复一次用意何在,实际上是new了两个B b = new B(); //b.display(); //这句在我这里运行正常,可正常关闭a a.dispose(); } });
//加上这句,在点X的时候可以退出系统,否则只是关闭窗口 a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); a.add(cts); a.setSize(300, 200); a.setVisible(true); } public static void main(String args[]) { new A(); } }import javax.swing.JFrame;public class B { public B() { JFrame b = new JFrame(); //加上这句,在点X的时候可以退出系统,否则只是关闭窗口 b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b.setSize(200, 100); b.setVisible(true); } public void display() { new B(); } }
public JFrame getBFrame(){ if(B == null){ B = new JFrame(); } } 这种写法也许是个理想的选择!否则你会发现生成n多无用的对象地
楼主截止到2008-06-20 15:46:57的汇总数据:
注册日期:2008-5-13
上次登录:2008-6-20
发帖数:1 发帖分:10
结贴数:0 结贴分:0
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
cts.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
b = new bFrame();
b.Display();
a.dispose();
}
});请大家指正!!!
a.dispose();
b = new bFrame();
b.Display();
a.dispose()不好用啊 编译可以过 但是运行的时候A窗体还是不消失的 而且是你按几下就出几个B窗体我只想出现一个B窗体 然后A窗体消失就行了!!!麻烦大家给看看啊!!
cts.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
a.dispose();
b = new bFrame();
b.Display(); }
}); 依然无效!!
想要得时候再设置为true
不想要就直接dispose()
import java.awt.event.*;
import javax.swing.*;
public class a
{
JFrame a = new JFrame("Test");
JButton cts = new JButton("button");
b b;
public a()
{
cts.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(ActionEvent e)
{
b = new b();
b.Display();
}
});
a.add(cts);
a.setSize(300,200);
a.setVisible(true);
}
public static void main(String args[])
{
new a();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class b
{ public b()
{
JFrame b = new JFrame();
b.setSize(200,100);
b.setVisible(true);
}
public void Display()
{
new b();
}
}
源程序在这里了 请各位帮我看看
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;public class A
{
JFrame a = new JFrame("Test"); JButton cts = new JButton("button"); B b; public A()
{
cts.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//在B里面,你的display方法的意图是new B();
//你这里既new B(),又b.display();
//不知道你这样重复一次用意何在,实际上是new了两个B
b = new B();
//b.display();
//这句在我这里运行正常,可正常关闭a
a.dispose();
}
});
//加上这句,在点X的时候可以退出系统,否则只是关闭窗口
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a.add(cts);
a.setSize(300, 200);
a.setVisible(true);
} public static void main(String args[])
{
new A();
}
}import javax.swing.JFrame;public class B
{
public B()
{
JFrame b = new JFrame();
//加上这句,在点X的时候可以退出系统,否则只是关闭窗口
b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b.setSize(200, 100);
b.setVisible(true);
} public void display()
{
new B();
}
}
if(B == null){
B = new JFrame();
}
}
这种写法也许是个理想的选择!否则你会发现生成n多无用的对象地