【发布时间】:2017-05-16 07:16:50
【问题描述】:
我正在GridLayout 中创建一个简单的窗口,这是我的代码:
package com.company.app;
import javax.swing.*;
import java.awt.*;
public class SpamGUI {
public static void main(String[] args) {
System.out.println("Loading Program..");
JFrame frame = new JFrame("My awesome Program");
frame.setVisible(true);
frame.setSize(800, 200);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(0, 3));
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
JLabel lblTrainPath = new JLabel("Enter Training Folder Path");
lblTrainPath.setSize(100,10);
panel.add(lblTrainPath);
JTextField txtTrainPath = new JTextField();
txtTrainPath.setSize(100,10);
panel.add(txtTrainPath);
JButton btnTrainPath = new JButton("Select");
panel.add(btnTrainPath);
JLabel lblTrainPath3 = new JLabel("Enter Training3 Folder Path");
panel.add(lblTrainPath3);
JTextField txtTestPath = new JTextField();
panel.add(txtTestPath);
JButton btnTestPath = new JButton("Select");
panel.add(btnTestPath);
frame.add(panel);
}
}
它会生成这样的屏幕:
如您所见,它不考虑组件的大小,在屏幕上显示的范围很广。此外,当我从 INtelliJ IDEA 运行程序时,除非我调整屏幕大小,否则它不会呈现组件。
我还想要一个具有自定义大小的组件的固定大小的窗口。
请指导
【问题讨论】:
-
“如您所见,它不考虑组件的大小,在屏幕上显示相当宽泛” 这是
GridLayout如果应用程序的一个功能。不需要,使用不同的布局(例如GridBagLayout)或使用流布局将每个组件包装在JPanel中。 “另外,当我从 INtelliJ IDEA 运行程序时,除非我调整屏幕大小,否则它不会渲染组件。”setVisible(true)应该最后完成。 -
@AndrewThompson 好的,我会看看 Gridbag 和 Flow Layout。说到能见度..我在第三行做..我还应该在哪里做?
-
"我还应该在哪里做?" ..应该在 last 完成(行,在添加所有组件并调用
pack().)
标签: java swing layout-manager grid-layout