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