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);
}

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

解决方案 »

  1.   

    你没定义setDefaultCloseOperation(EXIT_ON_CLOSE);
      

  2.   

      这个很简单啊,第一 ,你的构造方法里面没有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);
    }
            
    });这样就能实现点×系统退出了。