@布局管理器简单问题;
# 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() 这样用为什么统计能通过,运行出现错误呀;错误看不明白,给解释一下;
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)
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);