- 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);
}
});
这样就能实现点×系统退出了。