【发布时间】:2021-12-04 12:26:13
【问题描述】:
我正在尝试找出这个布局(其余代码处于早期阶段)但是对于这个块,我正在尝试找出最好的(和可行的)格式化它的方法。我希望它是一个 8x8 的网格,我最终将填充宝藏/空按钮,但我还需要顶部的标题以及左侧的一些标签和文本。我不确定我是否能够做多个网格,但我在下面所做的是尝试创建一个 1x2 网格,然后在其中放置另外两个网格,一个带有左侧的信息(3x2),另一个带有 8x8 网格纽扣。我知道它并不接近它所需要的,但是根本没有显示任何网格(它只是放标题,然后放一列有 8 行),我想知道我是否在任何正确的轨道上,或者如果我现在只是在编造一些事情。任何提示将不胜感激,或者有关可能嵌套网格的资源?我在我的书中找不到任何关于那个的具体内容。
private void buildPanel()
{
// Create labels to display the
treasuresLeftLabel = new JLabel("Treasures left: ");
treasuresFoundLabel = new JLabel("Treasures found: ");
triesLeftLabel = new JLabel("Tries left: ");
// Create text fields for each label
treasuresLeftTextField = new JTextField(2);
treasuresLeftTextField.setEditable(false);
treasuresLeftTextField.setText(String.valueOf(20-game.getTreasuresFound()));
treasuresFoundTextField = new JTextField(2);
treasuresFoundTextField.setEditable(false);
treasuresFoundTextField.setText(String.valueOf(game.getTreasuresFound()));
triesLeftTextField = new JTextField(2);
triesLeftTextField.setEditable(false);
triesLeftTextField.setText(String.valueOf(game.getTriesLeft()));
emptyButton = new EmptyButton();
emptyButton.addActionListener(new emptyButtonListener());
treasureButton = new TreasureButton();
treasureButton.addActionListener(new treasureButtonListener());
// new JPanel object referenced by panel
panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder("Treasure Hunt"));
// Add a gridlayout to the content pane
panel.setLayout(new GridLayout(1, 2));
panel.setLayout(new GridLayout(3, 2));
panel.add(treasuresLeftLabel);
panel.add(treasuresLeftTextField);
panel.add(treasuresFoundLabel);
panel.add(treasuresFoundTextField);
panel.add(triesLeftLabel);
panel.add(triesLeftTextField);
panel.setLayout(new GridLayout(8, 8));
panel.add(treasureButton);
panel.add(emptyButton);
}
【问题讨论】:
标签: java swing jframe layout-manager grid-layout