使用GridBagLayout在TextArea下面设置JButton

时间:2013-12-28 11:09:14

标签: java swing layout layout-manager gridbaglayout

我有一个TabbedPane,其中有Panels。 我正在处理第一个小组。 在这个面板里面左边应该有另一个小面板(我只是放置一个文本字段而不是参考)一个textarea在中心,下面是一排按钮。但是按钮放置在距离文本区域太低的位置。此外,如果我调整框架的大小,textarea就会消失,消失。文本字段设置正常,左上角,textarea在中心或多或少是,但在调整大小时它不会消失(这会对用户产生奇怪的效果)。

我已经尝试了所有变体南,西,无论如何,没有变化,或者反正过程太过分了。

我读过一些类似的问题,但我看不出他们的答案如何解决我的问题。

所以,这是代码:

super("Proyecto");
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     this.setSize(1200, 800);

/* 1. CREATE PANEL*/

 /*MAIN PANEL BOOK READER*/
 JPanel panelbookreader = new JPanel();

 /*CREATE TEXTAREA*/
 JTextArea areatextobookreader = new JTextArea(20, 80);
 /* 2. ADD THAT COMPONENT TO ITS PARENT*/

 panelbookreader.add(areatextobookreader);

 /* 3. SET A LAYOUT FOR THE PANEL THAT WILL ORGANIZE COMPONENTS INSIDE*/
 panelbookreader.setLayout(new GridBagLayout());


 GridBagConstraints gbc = new GridBagConstraints();

 JTextField hold = new JTextField(20);
 gbc.gridx = 0;
 gbc.gridy = 0;
 gbc.gridwidth = 1;
 gbc.gridheight = 1;
 panelbookreader.add(hold, gbc);

 //TEXT AREA
 gbc.gridx = 1;
 gbc.gridy = 1;
 gbc.gridwidth = 0;
 gbc.gridheight = 1;
 gbc.fill = GridBagConstraints.CENTER;
 gbc.weightx = 1.0;
 gbc.weighty = 1.0;
 panelbookreader.add(areatextobookreader, gbc);

//BUTTONS
 gbc.gridx = 1;
 gbc.gridy = 2;
 gbc.gridwidth = 1;
 gbc.gridheight = 1;
 gbc.fill = GridBagConstraints.SOUTH;
 gbc.weightx = 0.0;
 gbc.weighty = 0.0;
 panelbookreader.add(openbook, gbc);


 /*ADD THE PARENT TO ITS PARENT OR TO GRANPARENT OF COMPONENT*/

 JTabbedPane tabulado = new JTabbedPane();
 tabulado.addTab("BOOK READER",panelbookreader);

1 个答案:

答案 0 :(得分:2)

您对JTextArea的weightx1.0,这很好。 但是,如果您将weighty指定为1.0,则JButton没有空格。对textarea的重量进行一些更改,并为weighty指定jbutton