看板 java 關於我們 聯絡資訊
請問依下依個排版的問題 我希望排出這樣的排版 ┌┬┬┬┬┐ ├┴┴┴┴┤ ├────┤ └────┘ 上面是五個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
PsMonkey:那個 Exception 是在那一行爆出來的? 至少標一下吧? 07/04 19:15
※ 編輯: Liszt04 來自: 218.167.167.4 (07/04 19:32)