推 PsMonkey:那個 Exception 是在那一行爆出來的? 至少標一下吧? 07/04 19:15
※ 編輯: Liszt04 來自: 218.167.167.4 (07/04 19:32)
請問依下依個排版的問題
我希望排出這樣的排版
┌┬┬┬┬┐
├┴┴┴┴┤
├────┤
└────┘
上面是五個button, 中間是依個Jpanel可以畫畫, 下面是一個JTextField
code如下:
import javax.swing.*;
import java.awt.*;
public class GridBag extends JFrame
{
private GridBagLayout layout;
private GridBagConstraints constraints;
private JButton button1;
private JButton button2;
private JComboBox combobox1;
private JComboBox combobox2;
private JCheckBox checkbox;
private String list[] = {"option1", "option2", "option3", "option4"};
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)
這是GridBagTest的code:
mport javax.swing.*;
import java.awt.*;
public class GridBagTest
{
public static void main(String args[])
{
GridBag g = new GridBag();
g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g.setSize(600, 400);
g.setResizable(false);
g.setVisible(true);
}
}
要是紅色部分沒有打的話 輸出是正確的
加上去panel之後整個跑不出來
add(panel) 換成add(button) 的話 排版竟然也是錯的 囧
請問一下是我哪邊寫錯了 還是我哪邊觀念不太正確
麻煩好心的大大幫我看一下吧
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.167.4