标题:请教一个小问题
只看楼主
soita
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-9
 问题点数:0 回复次数:2 
请教一个小问题

做了两个JFrame窗口和两个JButton,两个JFrame是两个不同的类,并且分别拥有一个JButton,
点击第一个JFrame的JButton引发事件——创建第二个JFrame的类,让第二个JFrame显示,同时第一个JFrame不消失
(第一个JFrame大小为500*500,第二个JFrame大小为200*200)

问题来了,我想让第一个JFrame不可选(this.setEnabled(false)),知道点击了第二个JFrame的JButton才让第一个JFrame可选(this.setEnabled(true)),试了很多次,不知道应该怎么写,望高手指定。

一下为实例:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class firstJFrame extends JFrame implements ActionListener
{
JButton jb;
firstJFrame(String title)
{
super(title);
jb=new JButton("点我打开第二个");
jb.addActionListener(this);
this.add(jb,BorderLayout.SOUTH);
this.setSize(500,500);
this.setVisible(true);
}

public void actionPerformed()
{
//就是在这里写第一个JFrame不可选
secondJFrame tow=new secondJFrame("第二个");
}

public static void main(String args[])
{
firstJFrame one=new firstJFrame("第一个");
}
}


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class secondJFrame extends JFrame implements ActionListener
{
JButton jb;
secondJFrame(String title)
{
super(title);
jb=new JButton("点我关闭第二个");
jb.addActionListener(this);
this.add(jb,BorderLayout.SOUTH);
this.setSize(200,200);
this.setVisible(true);
}

public void actionPerformed()
{
//让第一个JFrame可以选
}
}

搜索更多相关主题的帖子: JFrame JButton setEnabled 
2007-10-23 01:52
魔鬼之子
Rank: 1
来 自:地狱之都
等 级:新手上路
帖 子:100
专家分:0
注 册:2007-9-22
得分:0 
回复:(soita)请教一个小问题

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class firstJFrame extends Frame implements ActionListener
{
private JButton jb;
public static firstJFrame one;
public firstJFrame(String title)
{
super(title);
this.setSize(200,200);
this.setLocation(120,130);
this.setLayout(new java.awt.BorderLayout());
this.setResizable(false);

jb=new JButton("点我打开第二个");
jb.addActionListener(this);
this.add(jb,BorderLayout.SOUTH);

this.setVisible(true);
this.addWindowListener(new WinClose());
}
class WinClose extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
public void actionPerformed(ActionEvent e)
{
//就是在这里写第一个JFrame不可选
new secondJFrame("第二个");
this.setEnabled(false);
}

public static void main(String args[])
{
one=new firstJFrame("第一个");
}

class secondJFrame extends Frame implements ActionListener
{
private JButton jb;
public secondJFrame(String title)
{
super(title);
this.setLocation(120,150);
this.setSize(200,200);
this.setLayout(new java.awt.BorderLayout());
this.setResizable(false);

jb=new JButton("点我关闭第二个");
jb.addActionListener(this);
this.add(jb,BorderLayout.SOUTH);

this.setVisible(true);
this.addWindowListener(new WinClose());
}
class WinClose extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
public void actionPerformed(ActionEvent e)
{
try
{
this.setVisible(false);
one.setEnabled(true);
one.setVisible(true);
}
catch(NullPointerException a){}
}
}
}
JFrame改为Frame
将两个类和二为一.
注意设置窗体的大小,位置,布局格式,以及代码的顺序.


只有仇恨才是永恒的
2007-10-23 11:07
soita
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-9
得分:0 

可我现在要的效果就是两个类,要是合一起的话早就做好了


┈1切┅o. §尽在+.┐`!不言中﹌ОooО°
2007-10-23 19:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-179944-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.187805 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved