如何改变JButton的大小?

时间:2014-11-15 21:57:46

标签: java swing jbutton layout-manager flowlayout

这是我的代码。该按钮的大小与FlowLayout相同。如何使按钮变小?

public class javalearning extends JFrame{{

    FlowLayout f = new FlowLayout();
    this.setSize(600,600);

    JFrame j = new JFrame();
    this.setTitle("this is a tittle");

        JButton button = new JButton();
        button.setText("Button");
        this.add(button);
        button.setBounds(10, 10, 10, 10);

        this.setVisible(true);  
    }
}

4 个答案:

答案 0 :(得分:4)

我认为你忘了setLayout,当我这样做时它会正常工作。不要使用setBounds并将其放在javalearning构造函数中,我也建议您setDefaultCloseOperation喜欢

public javalearning() {
    FlowLayout f = new FlowLayout();
    this.setLayout(f);
    this.setSize(600, 600);
    this.setTitle("this is a tittle");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JButton button = new JButton();
    button.setText("Button");
    this.add(button);
    // button.setBounds(10, 10, 10, 10);

    this.setVisible(true);
}

public static void main(String[] args) {
    javalearning m = new javalearning();
}

最后,按照惯例,Java类名称以大写字母开头,并且是驼峰式的。像JavaLearning这样的东西会遵循这个惯例。

答案 1 :(得分:4)

您从未将布局管理器(FlowLayout)设置为框架,因此JFrame仍在使用BorderLayout的默认布局管理器...

尝试使用更像......

的内容
FlowLayout f = new FlowLayout();
setLayout(f);
this.setTitle("this is a tittle");

JButton button = new JButton();
button.setText("Button");
this.add(button);

this.pack();
this.setVisible(true);  

,而不是...

仔细查看Laying Out Components Within a Container了解更多详情

答案 2 :(得分:0)

FlowLayout将根据需要从左到右(或从右到左)布置组件。如果您希望明确设置每个JButton的大小,则应使用setPreferredSize而不是setSizesetBounds,因为布局管理员通常会使用最小,首选和最大尺寸执行布局时。

答案 3 :(得分:0)

button.setBounds(x, y, height, width);

你可以给出高度和宽度小于10! 你也可以使用GridLayout在一个按钮中使用for循环

的较小按钮