增加一個行大小以上幀包含GridLayout的兩行。第一行是文本區域,第二行是帶有兩個複選框的面板。我想增加第一排的高度,使第一排應該是總高度的75%,第二排應該是25%。我怎樣才能做到這一點?這裏是我的代碼片段:
setLayout(new GridLayout(2, 0, 0, 0));
Panel text_panel = new Panel();
add(text_panel);
text_panel.setLayout(new GridLayout(1, 0, 0, 0));
JTextArea textArea = new JTextArea();
textArea.setText("text to be displayed");
JScrollPane scroll = new JScrollPane (textArea);
text_panel.add(scroll);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setEditable(false);
Border border = BorderFactory.createLineBorder(Color.GRAY);
textArea.setBorder(border);
textArea.setFont(new Font("Arial",Font.PLAIN,12));
textArea.setCaretPosition(0);
textArea.requestFocus();
Panel checebox_panel = new Panel();
checebox_panel.setBackground(Color.WHITE);
add(checebox_panel);
checebox_panel.setLayout(new GridLayout(1, 0, 0, 0));
androidCheckBox = new JCheckBox("Open start page");
androidCheckBox.setBackground(Color.WHITE);
androidCheckBox.addItemListener(itemListener);
androidCheckBox.setSelected(true);
checebox_panel.add(androidCheckBox);
eclipseCheckBox = new JCheckBox("register for updates");
eclipseCheckBox.setBackground(Color.WHITE);
eclipseCheckBox.addItemListener(itemListener);
eclipseCheckBox.setSelected(true);
checebox_panel.add(eclipseCheckBox);
我建議你在這種情況下使用'BorderLayout',將textArea放在CENTER中,其餘的放在SOUTH中。但如果你真的想要75%/ 25%,你應該使用'GridBagLayout'。只需在線查找教程,或者使用JavaDocs內部教程。 – hoijui
爲什麼75%/ 25%?那些只是隨機數字。我也同意你應該只使用BorderLayout。複選框爲固定大小,文本區域將在框架調整大小時自動調整大小。 – camickr