当前位置: 技术问答>java相关
请各位高手会诊这段程序
来源: 互联网 发布时间:2017-03-15
本文导语: 主要表现是程序结束后无法关闭,也就是windowClosing事件没有向应,我这里用的是内部类,请问是程序的事情还是计算机系统的事情,这段程序前几天运行还是正常的,今天就不能关闭。 import java.awt.*; import java.awt.e...
主要表现是程序结束后无法关闭,也就是windowClosing事件没有向应,我这里用的是内部类,请问是程序的事情还是计算机系统的事情,这段程序前几天运行还是正常的,今天就不能关闭。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutDemo implements ActionListener{
JPanel p1,p2,p3,p4;
int i=1;
JFrame f;
public CardLayoutDemo(){
f=new JFrame();
Container contentPane=f.getContentPane();
contentPane.setLayout(new GridLayout(2,1));
p1=new JPanel();
Button b=new Button("change care");
b.addActionListener(this);
p1.add(b);
contentPane.add(p1);
p2=new JPanel();
p2.setLayout(new FlowLayout());
p2.add(new JButton("first"));
p2.add(new JButton("2nd"));
p2.add(new JButton("3rd"));
p3=new JPanel();
p3.setLayout(new GridLayout(3,1));
p3.add(new JButton("fourth"));
p3.add(new JButton("fifth"));
p3.add(new JButton("last button"));
p4=new JPanel();
p4.setLayout(new CardLayout());
p4.add("one",p2);
p4.add("two",p3);
((CardLayout)p4.getLayout()).show(p4,"one");
contentPane.add(p4);
f.setTitle("C1ardLayout");
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void WindowClosing(WindowEvent e)
{
System.exit(0);
}} );
}
public void actionPerformed(ActionEvent event)
{
switch(i)
{
case 1:
((CardLayout)p4.getLayout()).show(p4,"two");
break;
case 2:
((CardLayout)p4.getLayout()).show(p4,"one");
break;
}
i++;
if (i==3)
i=1;
f.validate();
}
public static void main(String args[]){
new CardLayoutDemo();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutDemo implements ActionListener{
JPanel p1,p2,p3,p4;
int i=1;
JFrame f;
public CardLayoutDemo(){
f=new JFrame();
Container contentPane=f.getContentPane();
contentPane.setLayout(new GridLayout(2,1));
p1=new JPanel();
Button b=new Button("change care");
b.addActionListener(this);
p1.add(b);
contentPane.add(p1);
p2=new JPanel();
p2.setLayout(new FlowLayout());
p2.add(new JButton("first"));
p2.add(new JButton("2nd"));
p2.add(new JButton("3rd"));
p3=new JPanel();
p3.setLayout(new GridLayout(3,1));
p3.add(new JButton("fourth"));
p3.add(new JButton("fifth"));
p3.add(new JButton("last button"));
p4=new JPanel();
p4.setLayout(new CardLayout());
p4.add("one",p2);
p4.add("two",p3);
((CardLayout)p4.getLayout()).show(p4,"one");
contentPane.add(p4);
f.setTitle("C1ardLayout");
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void WindowClosing(WindowEvent e)
{
System.exit(0);
}} );
}
public void actionPerformed(ActionEvent event)
{
switch(i)
{
case 1:
((CardLayout)p4.getLayout()).show(p4,"two");
break;
case 2:
((CardLayout)p4.getLayout()).show(p4,"one");
break;
}
i++;
if (i==3)
i=1;
f.validate();
}
public static void main(String args[]){
new CardLayoutDemo();
}
}
|
呵呵,是windowClosing(WindowEvent e)
写成WindowClosing(WindowEvent e),就变成一个全新的自己定义的函数
写成WindowClosing(WindowEvent e),就变成一个全新的自己定义的函数
|
注意大小写,应该是windowClosing
|
public void WindowClosing(WindowEvent e),应该是:
public void windowClosing(WindowEvent e)
你是重载ActionListener里的方法,怎么能随便改变大小写呢,那就是你的方法了.这是个值得注意的问题,thinking in java里曾经专门提到过这个问题,并且自己也曾以身试法.
public void windowClosing(WindowEvent e)
你是重载ActionListener里的方法,怎么能随便改变大小写呢,那就是你的方法了.这是个值得注意的问题,thinking in java里曾经专门提到过这个问题,并且自己也曾以身试法.
|
呵呵,up!
|
e_he (海棠) :
该结贴时就结贴,多留点时间继续前进.
该结贴时就结贴,多留点时间继续前进.
|
也许你使用编辑器时不小心造成的!!
|
老兄,在我的机子上运行正常
|
前几天还好好的,今天就坏了。怎么什么怪事都有
|
我运行正常