当前位置: 代码迷 >> J2SE >> 一个swing应用程序卡死有关问题
  详细解决方案

一个swing应用程序卡死有关问题

热度:327   发布时间:2016-04-24 01:40:20.0
一个swing应用程序卡死问题
Java code
package ch5;import java.awt.BorderLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JLayeredPane;import javax.swing.JPanel;public class JLayeredPaneTest extends Frame{    public JLayeredPaneTest()    {        final int x=new Integer(100);        int y=new Integer(200);        JLabel j=new JLabel("sadasdsadsadsadsa");        JLabel j1=new JLabel("萨达是决定离开撒娇sadasjdsal");        j.setBounds(20,20,100,100);        j1.setBounds(20,20,100,100);        JLayeredPane main=new JLayeredPane();        JLayeredPane submain=new JLayeredPane();                main.setLayout(new BorderLayout());        JButton b1=new JButton("往上一层");        JButton b2=new JButton("往下一层");        JPanel jpanel=new JPanel();        jpanel.add(b1);        jpanel.add(b2);        main.add(jpanel,BorderLayout.SOUTH);        submain.add(j,x );        submain.add(j1,y );        main.add(submain,BorderLayout.CENTER);}    public static void main(String[] args)    {        JLayeredPaneTest sa=new JLayeredPaneTest();        sa.setBounds(100,100,500,500);        sa.setVisible(true);            }            }


这个程序运行的时候会直接卡死,什么都显示不出来,点×都关不了????

------解决方案--------------------
你没定义setDefaultCloseOperation(EXIT_ON_CLOSE);
------解决方案--------------------
这个很简单啊,第一 ,你的构造方法里面没有this.add(main);这句话啊,就相当于什么也没有加,家里这句话就加了main ,main又会添加submain ;第二,要实现点×关闭程序就用一个简单的内部类继承自WindowAdapter 就行 代码为: this.addWindowListener(new WindowAdapter() {//完成点×就关闭程序的功能

@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}

});

这样就能实现点×系统退出了。