这是我的代码。该按钮的大小与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);
}
}
答案 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
而不是setSize
或setBounds
,因为布局管理员通常会使用最小,首选和最大尺寸执行布局时。
答案 3 :(得分:0)
button.setBounds(x, y, height, width);
你可以给出高度和宽度小于10! 你也可以使用GridLayout在一个按钮中使用for循环
的较小按钮