Java 使用GridBagLayout在TextArea下方设置JButton

Java 使用GridBagLayout在TextArea下方设置JButton,java,swing,layout,layout-manager,gridbaglayout,Java,Swing,Layout,Layout Manager,Gridbaglayout,我有一个选项卡式窗格,其中有面板。 我现在处理的是第一个小组。 在这个面板的左侧应该有另一个小面板(我只是放置了一个文本字段作为参考),中间是一个文本区域,下面是一行按钮。但是按钮的位置离文本区域太低。此外,如果我调整框架的大小,文本区域就会消失。textfield设置为ok(左上角),textarea(文本区域)或多或少位于中间的yes(是),但在调整大小时它不应该消失(这会给用户带来奇怪的效果) 我尝试了南方、西部的所有变体,没有任何变化,或者它走得太远了 我读过一些类似的问题,但我不知道他

我有一个选项卡式窗格,其中有面板。 我现在处理的是第一个小组。 在这个面板的左侧应该有另一个小面板(我只是放置了一个文本字段作为参考),中间是一个文本区域,下面是一行按钮。但是按钮的位置离文本区域太低。此外,如果我调整框架的大小,文本区域就会消失。textfield设置为ok(左上角),textarea(文本区域)或多或少位于中间的yes(是),但在调整大小时它不应该消失(这会给用户带来奇怪的效果)

我尝试了南方、西部的所有变体,没有任何变化,或者它走得太远了

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

下面是代码:

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);

JTextArea的
weightx
1.0
,这很好。 但是,当您将
权重
也指定为
1.0
时,就没有空间放置
JButton
。对
textarea
的权重进行一些更改,并为
jbutton
指定
weighty