首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridBagLayout联盟

GridBagLayout联盟
EN

Stack Overflow用户
提问于 2017-04-16 12:38:31
回答 1查看 47关注 0票数 0

我试图找出GridBagLayout是如何工作的,因为我从未使用过它。我会发布源代码和图片的gui。我对部件有问题。我想把按钮放在两个组件的中间(一个是checkboxgroup,另一个是JTextArea。我管理,但它是在底部的联盟,我希望它是在两个组件的高度中间。

代码语言:javascript
复制
public class GUI extends JFrame {
public GUI(){
    setSize(600,400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setTitle("ridBagLayout[![enter image description here][1]][1]");
    JPanel panel=new JPanel(new GridBagLayout());
    GridBagConstraints c=new GridBagConstraints();
    String[]niz={"C Sharp","Java","PHP","VisualBasic"};
    c.anchor=GridBagConstraints.PAGE_START;
    c.weighty=1.0;
    c.gridx=0;
    c.gridy=0;

     c.insets=new Insets(30,30,0,0);
    panel.add(new JComboBox(niz),c);
    c.gridx=1;
    //c.insets=new Insets(10,0,0,0);

    panel.add(new JButton("Get drop down item"),c);
    c.gridx=2;
    c.ipadx=20;
    panel.add(new JTextField(15),c);
    JCheckBox visualBasic=new JCheckBox("Visual Basic");
JCheckBox cSharp=new JCheckBox("C Sharp");
JCheckBox java=new JCheckBox("Java");
JCheckBox php=new JCheckBox("PHP");

     JPanel checkbox=new JPanel();
     checkbox.setLayout(new GridLayout(4,0,5,5));
checkbox.add(visualBasic);
checkbox.add(cSharp);
checkbox.add(java);
checkbox.add(php);
 javax.swing.border.Border raisedetched = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
checkbox.setBorder(raisedetched);
    c.insets=new Insets(0,20,0,0);
    c.gridx=0;
    c.gridy=1;
    panel.add(checkbox,c);

    c.gridx=1;

    c.ipadx=30;
   c.anchor=GridBagConstraints.CENTER;
    panel.add(new JButton("Selected Item"),c);

    c.gridx=2;
    c.gridy=1;
    c.ipadx=20;
    c.anchor=GridBagConstraints.NORTH;
    panel.add(new JTextArea(7,15),c);

    add(panel);
    setVisible(true);
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-16 12:55:40

GridBagLayout是在Java中使用的最强大的布局之一,但是它需要一些嵌套才能获得良好的结果。

在您的情况下,您可能需要将该按钮放在面板中,并将其对齐属性设置为CENTER

关于GridBagLayout有很多文档,但是查看它如何工作的另一种方法是在NetBeans这样的IDE中创建一个新项目,并通过图形化编辑器创建该GUI,并查看生成的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43437321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档