Java 如何在JFrame中排列组件
我试图得到一个JTextArea,它下面有一个以“save”为中心的JButton,如果可能的话,在组件之间以及组件到框架之间可能有一点填充。我试过和布局管理器、面板等混在一起,但似乎无法得到我想要的结果。只是想找到最简单的方法。谢谢。建议:Java 如何在JFrame中排列组件,java,swing,jframe,layout-manager,Java,Swing,Jframe,Layout Manager,我试图得到一个JTextArea,它下面有一个以“save”为中心的JButton,如果可能的话,在组件之间以及组件到框架之间可能有一点填充。我试过和布局管理器、面板等混在一起,但似乎无法得到我想要的结果。只是想找到最简单的方法。谢谢。建议: GUI容器的总体布局可以是BorderLayout 添加保存JTextArea BorderLayout.CENTER的JScrollPane 创建一个JPanel只是为了保存JButton,而不是给它一个特定的布局管理器。它现在将使用JPanel的默认
- GUI容器的总体布局可以是BorderLayout
- 添加保存JTextArea BorderLayout.CENTER的JScrollPane
- 创建一个JPanel只是为了保存JButton,而不是给它一个特定的布局管理器。它现在将使用JPanel的默认FlowLayout,并将组件置于水平方向的中心
- 将JButton添加到最后一个JPanel
- 将相同的JPanel添加到BorderLayout.PAGE_END(底部)位置的GUI中
“我尝试过摆弄布局管理器、面板等,但似乎无法得到我想要的结果。”
--始终显示您尝试的图像。太棒了,非常感谢您的努力。正是我想要的。
import java.awt.BorderLayout;
import javax.swing.*;
public class SimpleLayout extends JPanel {
private static final int ROWS = 20;
private static final int COLS = 60;
private JTextArea textArea = new JTextArea(ROWS, COLS);
private JButton button = new JButton("Button");
public SimpleLayout() {
JPanel buttonPanel = new JPanel();
buttonPanel.add(button);
setLayout(new BorderLayout());
add(new JScrollPane(textArea), BorderLayout.CENTER);
add(buttonPanel, BorderLayout.PAGE_END);
}
private static void createAndShowGui() {
SimpleLayout mainPanel = new SimpleLayout();
JFrame frame = new JFrame("SimpleLayout");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
createAndShowGui();
});
}
}