我有这个问题。该按钮占用整个JFrame。我尝试过改变JFrame和JButton的尺寸,但没有改变。它完全隐藏了一个JTable。有人可以告诉我我做错了什么。
JFrame FRAME = new JFrame();
JButton BUTTON = new JButton("OK");
FRAME.add(new JScrollPane(TableName));
BUTTON.setPreferredSize(new Dimension(20,30));
FRAME.add(BUTTON);
FRAME.setSize(700, 600);
FRAME.setVisible(true);
FRAME.setLocationRelativeTo(null);
答案 0 :(得分:2)
JFrame
的默认布局管理器是BorderLayout
。您正在尝试添加两个不允许的CENTER
组件。仅显示添加的最后一个。
在向BorderLayout
添加组件时,您需要指定约束。你的代码应该是这样的:
frame.add(new JScrollPane(TableName), BorderLayout.CENTER);
button.setPreferredSize(new Dimension(20,30));
frame.add(button, BorderLayout.PAGE_START);
此外,变量名称不应该是大写的。遵循Java惯例。
阅读How to Use BorderLayout上Swing教程中的部分,了解更多信息和工作示例。教程代码还将向您展示如何更好地构建程序,以便遵循Swing编码约定。
答案 1 :(得分:0)
不要将按钮直接添加到框架,首先创建JPanel,将按钮添加到面板然后将面板添加到框架。
答案 2 :(得分:-1)
JFrame frame = new JFrame();
// frame.setBounds(x axis, y axis, weight, height)
frame.setBounds(10,10,304,214);
frame.getContentPane().setLayout(null);
JButton button = new JButton("Button");
button.setBounds(98, 75, 126, 39);
frame.getContentPane().add(button);
frame.setVisible(true);