页面1
import java.awt.event.*;
import javax.swing.*;public class SwingDemo extends JFrame implements ActionListener
{
JButton b;
public SwingDemo()
{
b=new JButton("kaish");
b.addActionListener(this);
this.getContentPane().add(b);
this.setVisible(true);
}
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);//改变感官
SwingDemo frame=new SwingDemo();
frame.setResizable(false);//关闭最大化
frame.setSize(320,300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent arg0)
{
if(arg0.getSource().equals(b))
{
this.enable();
new SwingTable(this);
}
}
public void enable()
{
if(this.isEnabled()==true)
this.setEnabled(false);
else if(this.isEnabled()==false)
this.setEnabled(true);
}
}
页面2
import java.awt.event.*;
import javax.swing.*;public class SwingTable extends JFrame
{
SwingDemo ma;
public SwingTable(SwingDemo ma)
{
this.ma=ma;
JFrame.setDefaultLookAndFeelDecorated(true);//改变感官
this.setResizable(false);//关闭最大化
this.setSize(320,300);
this.setVisible(true);
this.setVisible(true);
}
public void processWindowEvent(WindowEvent e)
{
if(e.getID()==WindowEvent.WINDOW_CLOSING)
{
if(ma.isEnabled()==false)
{
ma.enable();
}
this.dispose();//释放资源
super.processWindowEvent(e);//处理此组件上发生的窗口事件
}
}
}
我想完成的是页面2关闭的时候页面的Enabled解除!但是怎么都不行!
import java.awt.event.*;
import javax.swing.*;public class SwingDemo extends JFrame implements ActionListener
{
JButton b;
public SwingDemo()
{
b=new JButton("kaish");
b.addActionListener(this);
this.getContentPane().add(b);
this.setVisible(true);
}
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);//改变感官
SwingDemo frame=new SwingDemo();
frame.setResizable(false);//关闭最大化
frame.setSize(320,300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent arg0)
{
if(arg0.getSource().equals(b))
{
this.enable();
new SwingTable(this);
}
}
public void enable()
{
if(this.isEnabled()==true)
this.setEnabled(false);
else if(this.isEnabled()==false)
this.setEnabled(true);
}
}
页面2
import java.awt.event.*;
import javax.swing.*;public class SwingTable extends JFrame
{
SwingDemo ma;
public SwingTable(SwingDemo ma)
{
this.ma=ma;
JFrame.setDefaultLookAndFeelDecorated(true);//改变感官
this.setResizable(false);//关闭最大化
this.setSize(320,300);
this.setVisible(true);
this.setVisible(true);
}
public void processWindowEvent(WindowEvent e)
{
if(e.getID()==WindowEvent.WINDOW_CLOSING)
{
if(ma.isEnabled()==false)
{
ma.enable();
}
this.dispose();//释放资源
super.processWindowEvent(e);//处理此组件上发生的窗口事件
}
}
}
我想完成的是页面2关闭的时候页面的Enabled解除!但是怎么都不行!
this.setEnabled(false);
else if(this.isEnabled()==false)
this.setEnabled(true);
楼主这代码写的高啊
如果真就 set(false)
接下来又判断是否假:注意刚才已经set(false)了!!!!!
当然接着假也成立
这逻辑有问题
this.setEnabled(false);设置为未激活状态
else if(this.isEnabled()==false)如果是未激活状态
this.setEnabled(true);设置为激活状态
else----第一个语句成立,就跳出了!不会执行第二个语句吧?
有点晕了
我即使在程序中把调用这个函数的this.enable();设置为
this.setEnabled(false);
this.setEnabled(true);
都不行!感觉是不是应该得刷新面板或者有其他的方法~
JButton but; SwingTable st; public SwingDemo() {
but = new JButton("按钮");
but.addActionListener(this);
this.getContentPane().add(but);
} public static void main(String[] args) { SwingDemo frame = new SwingDemo();
frame.setSize(320, 300);
frame.setVisible(true);
} public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource().equals(but)) {
this.setEnabled(false);
new SwingTable(this);
}
}}class SwingTable extends JFrame {
SwingDemo sd; public SwingTable(SwingDemo ma) {
sd = ma;
this.setSize(320, 300);
this.setLocation(320,300);
this.setVisible(true);
} public void processWindowEvent(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
sd.setEnabled(true);
this.dispose();// 释放资源
super.processWindowEvent(e);// 处理此组件上发生的窗口事件
}
}
}
谢谢了!给分!
public void enable(boolean b);是个过时的方法,被setEnabled();取代.不要叫自己的方法和api的方法重名!!!还有,你最起码应该在SwingDemo中执行"关闭"按扭的操作吧,要完全释放资源比较好,不过这和你说的问题没有关系,最好这样做就对了!