【发布时间】:2014-05-14 11:54:58
【问题描述】:
我需要在我的 GUI 按钮下添加一个带有边框工厂的网格布局!我尝试了许多不同的方法,但似乎都没有奏效。我已经把我当前的代码放在下面...
public abstract class TestVehicles extends Vehicle implements ActionListener {
public static void main(String[] args) {
JFrame carPark = new JFrame("Car Park");
carPark.setSize(750, 750);
carPark.setResizable(false);
carPark.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
placeComponets(carPark);
carPark.setVisible(true);
}
public static void placeComponets(JFrame carPark) {
carPark.setLayout(new FlowLayout());
JLabel userLabel = new JLabel("");
userLabel.setBounds(750, 750, 750, 750);
carPark.add(userLabel);
userLabel.setBackground(Color.LIGHT_GRAY);
userLabel.setOpaque(true);
userLabel.setHorizontalAlignment(SwingConstants.LEFT);
userLabel.setVerticalAlignment(SwingConstants.TOP);
JButton addCar = new JButton("Add Car");
addCar.setBounds(10, 10, 100, 100);
carPark.add(addCar);
addCar.setVisible(true);
ActionListener addCarButtonListener = new AddCarButtonListener();
addCar.addActionListener(addCarButtonListener);
addCar.setVisible(true);
JButton addLorry = new JButton("Add Lorry");
addLorry.setBounds(10, 10, 25, 25);
carPark.add(addLorry);
addLorry.setVisible(true);
ActionListener addLorryButtonListener = new AddLorryButtonListener();
addLorry.addActionListener(addLorryButtonListener);
addLorry.setVisible(true);
JButton addCoach = new JButton("Add Coach");
addCoach.setBounds(10, 10, 100, 100);
carPark.add(addCoach);
addCoach.setVisible(true);
ActionListener addCoachButtonListener = new AddCoachButtonListener();
addCoach.addActionListener(addCoachButtonListener);
addCoach.setVisible(true);
JPanel gridPanel = new JPanel();
JPanel gridPanelLayout = new JPanel(new GridLayout(4, 5, 10, 10));
carPark.add(gridPanelLayout);
gridPanelLayout.setBackground(Color.WHITE);
gridPanelLayout.setBorder(BorderFactory.createEmptyBorder(4, 4, 10, 10));
Border redBorder = BorderFactory.createLineBorder(Color.RED);
}
【问题讨论】:
-
Java GUI 可能必须在多个平台、不同的屏幕分辨率和使用不同的 PLAF 上工作。因此,它们不利于组件的精确放置。要为强大的 GUI 组织组件,请改用布局管理器或 combinations of them,以及 white space 的布局填充和边框。
标签: java swing layout-manager grid-layout flowlayout