首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

in thread "main " java.awt.AWTError:

2011-12-11 
@布局管理器简单问题@布局管理器简单问题;#BoxLayout()这样用为什么统计能通过,运行出现错误呀;错误看不明

@布局管理器简单问题
@布局管理器简单问题;
#     BoxLayout()     这样用为什么统计能通过,运行出现错误呀;错误看不明白,给解释一下;
import   java.awt.*;
import   javax.swing.*;

public   class   MyFrame1  
{
public   MyFrame1()
{
JFrame   frame=new   JFrame( "Ghosthuo ");
JPanel   contentpane=new   JPanel();
JPanel   north=new   JPanel();
JPanel   west=new   JPanel();
JPanel   east=new   JPanel();

JButton     b1=new   JButton( "b1 ");
JButton     b2=new   JButton( "b2 ");
JButton     b3=new   JButton( "b3 ");
JButton     b4=new   JButton( "b4 ");
JButton     b5=new   JButton( "b5 ");
JButton     b6=new   JButton( "b6 ");
JButton     b7=new   JButton( "b7 ");
JButton     b8=new   JButton( "b8 ");
JButton     b9=new   JButton( "b9 ");

north.setLayout(new   FlowLayout());
north.add(b1);
north.add(b2);
north.add(b3);

west.setLayout(new   BoxLayout(west,BoxLayout.Y_AXIS));
west.add(b4);
west.add(b5);
west.add(b6);

east.setLayout(new   BoxLayout(west,BoxLayout.Y_AXIS));
east.add(b7);
east.add(b8);
east.add(b9);

contentpane.setLayout(new   BorderLayout());
contentpane.add(north,BorderLayout.NORTH);
contentpane.add(west,BorderLayout.WEST);
contentpane.add(east,BorderLayout.EAST);

frame.setContentPane(contentpane);
frame.setSize(500,200);
//frame.pack();
frame.setVisible(true);

}

public   static   void   main(String[]   args)  
{
//   TODO:   在这添加你的代码
MyFrame1   mytry=new   MyFrame1();
}
}
========================================================================
错误信息:
Exception   in   thread   "main "   java.awt.AWTError:   BoxLayout   can 't   be   shared
                at   javax.swing.BoxLayout.checkContainer(BoxLayout.java:415)
                at   javax.swing.BoxLayout.invalidateLayout(BoxLayout.java:202)
                at   java.awt.Container.invalidate(Container.java:1417)
                at   java.awt.Component.addNotify(Component.java:5879)
                at   java.awt.Container.addNotify(Container.java:2493)
                at   javax.swing.JComponent.addNotify(JComponent.java:4469)
                at   java.awt.Container.addNotify(Container.java:2500)
                at   javax.swing.JComponent.addNotify(JComponent.java:4469)
                at   java.awt.Container.addNotify(Container.java:2500)
                at   javax.swing.JComponent.addNotify(JComponent.java:4469)
                at   java.awt.Container.addNotify(Container.java:2500)
                at   javax.swing.JComponent.addNotify(JComponent.java:4469)


                at   javax.swing.JRootPane.addNotify(JRootPane.java:680)
                at   java.awt.Container.addNotify(Container.java:2500)
                at   java.awt.Window.addNotify(Window.java:466)
                at   java.awt.Frame.addNotify(Frame.java:501)
                at   java.awt.Window.show(Window.java:513)
                at   java.awt.Component.show(Component.java:1300)
                at   java.awt.Component.setVisible(Component.java:1253)
                at   MyFrame1. <init> (MyFrame1.java:53)
                at   MyFrame1.main(MyFrame1.java:64)


[解决办法]
如果非要用BoxLayout 极力推荐使用Box 而不是JPanel !
[解决办法]
west.setLayout(new BoxLayout(west,BoxLayout.Y_AXIS));
west.add(b4);
west.add(b5);
west.add(b6);

east.setLayout(new BoxLayout(//这里用east看看west,BoxLayout.Y_AXIS));
east.add(b7);
east.add(b8);
east.add(b9);

热点排行