作者sbrhsieh (sbr)
看板java
标题Re: [问题] 一个 GridBagLayout 的问题
时间Sat Jul 4 20:38:02 2009
※ 引述《Liszt04 (走路往下看都会怕)》之铭言:
: private JPanel panel;
: private JTextField textarea;
: public GridBag()
: {
: super("gridbaglayout");
: layout = new GridBagLayout();
: setLayout(layout);
: constraints = new GridBagConstraints();
: button1 = new JButton("Button1");
: button2 = new JButton("Button2");
: combobox1 = new JComboBox(list);
: combobox2 = new JComboBox(list);
: checkbox = new JCheckBox("filled");
: textarea = new JTextField("textfield", 50);
: constraints.fill = GridBagConstraints.HORIZONTAL;
: addComponent(button1, 0, 0, 1, 1);
: addComponent(button2, 1, 0, 1, 1);
: addComponent(combobox1, 2, 0, 1, 1);
: addComponent(combobox2, 3, 0, 1, 1);
: addComponent(checkbox, 4, 0, 1, 1);
: constraints.fill = GridBagConstraints.BOTH;
: addComponent(panel, 0, 1, 5, 1);
: constraints.fill = GridBagConstraints.HORIZONTAL;
: addComponent(textarea, 0, 2, 5, 1);
: }
: public void addComponent(Component component, int column, int row, int
: width, int height)
: {
: constraints.gridx = column;
: constraints.gridy = row;
: constraints.gridwidth = width;
: constraints.gridheight = height;
: layout.setConstraints(component, constraints);
: add(component);
: }
: }
: 他跑出来的结果是:
: exceptionx in thread "main" lava.lang.Nullpointerexception
: at java.util.Hastable.put(Hashtable.java:399)
: at java.awt.GridBagLayout.setConstraints(GridBagLayout.java:482)
: at GridBag.addComponent(GridBag.java:61)
: at GridBag.(init)(GridBag.java:48)
: at GridBagTest.main(GridBagTest.java:8)
: }
: 要是红色部分没有打的话 输出是正确的
: 加上去panel之後整个跑不出来
: add(panel) 换成add(button) 的话 排版竟然也是错的 囧
: 请问一下是我哪边写错了 还是我哪边观念不太正确
exception 是在绿色那一个 statement 产生的,原因很明显
就是 panel 这个 field 的值是 null。
button1, button2 这些 field 你都会 assign JButon instance reference,那
panel 呢?!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.139.26
※ 编辑: sbrhsieh 来自: 218.173.139.26 (07/04 20:40)
1F:推 Liszt04:了解! 但是我打了panel = new JPanel()之後排版还是怪怪的 07/04 20:44