在网格布局中,Jbutton大小不会随着在java中使用setBounds()而改变

时间:2015-04-02 09:14:54

标签: java swing jbutton grid-layout

使用GridLayout创建框架时,使用setBound()不会更改按钮大小。框架的代码是:

f1=new JFrame("Select any one");
            ch=new JCheckBox("SUBSTITUTION CYPHER");
            ch1=new JCheckBox("two");
            ch2=new JCheckBox("three");
            ch3=new JCheckBox("four");
            ch4=new JCheckBox("five");

            f1.add(ch);
            f1.add(ch1);
            f1.add(ch2);
            f1.add(ch3);
            f1.add(ch4);
            f1.setLayout(new GridLayout(5, 1));
            b10.addActionListener(this);
            b10.setBounds(280,380,10,10);
            f1.add(b10);
            f1.setSize(300,400);
            f1.setVisible(true);

3 个答案:

答案 0 :(得分:2)

根据setBounds

docs
  

此方法更改与布局相关的信息,因此,   使组件层次结构无效。

因此,setBounds设置特定布局的大小和位置。在您的JFrame GridLayout设置setBounds,{{1}}无效。

答案 1 :(得分:2)

GridLayout不是按钮的最佳选择,因为GridLayout将占用其容器中的所有空间。所以没有setBounds()不会是你想要实现的目标的最佳选择。

我建议看一下LayoutManagers的这个参考:Reference for LayoutManagers

我建议看看一些替代的LayoutManagers。你可以试试GridBagLayout。

答案 2 :(得分:1)

如果您真的想使用GridLayout,您还可以先为每个网格添加JPanel,然后将较小的JButton添加到JPanel