gpt4 book ai didi

java - 将 JLabel 添加到使用 BoxLayout 的 JFrame

转载 作者:行者123 更新时间:2023-11-30 06:08:46 24 4
gpt4 key购买 nike

我正在创建一个 JFrame,其中包含一个带有按钮网格的 JPanel。一切正常,但我想在按钮面板上方添加一个 JLabel 但标签永远不会出现。不过,如果我不使用 BoxLayout,它确实会出现。如有任何帮助,我们将不胜感激。

下面的第一个代码部分是我的 JFrame 类:

import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Frame extends JFrame {
private static final long serialVersionUID = 1L;

Panel panel = new Panel();
Dimension frameDim = new Dimension(1000, 1000);
Dimension labelDim = new Dimension(100, 20);
Box box = new Box(BoxLayout.Y_AXIS);
JLabel label = new JLabel("Tic Tac Toe");
JPanel pane = new JPanel();

public Frame() {

pane.add(label);
pane.setPreferredSize(labelDim);
pane.setMinimumSize(labelDim);
add(pane);
box.add(Box.createVerticalGlue());
box.add(panel);
box.add(Box.createVerticalGlue());
add(box);
setTitle("Tic Tac Toe");
setSize(frameDim);
setMinimumSize(frameDim);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}

下面的代码是我的带有按钮的 JPanel 类:

import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;

public class Panel extends JPanel {
private static final long serialVersionUID = 2L;

private int i;

JButton[] button = new JButton[9];
GridLayout layout = new GridLayout(3, 3);
Dimension dim = new Dimension(500, 500);

public Panel() {

for (i = 0; i<9; i++) {
button[i] = new JButton();
add(button[i]);
}
setPreferredSize(dim);
setMinimumSize(dim);
setMaximumSize(dim);
setLayout(layout);
}
}

下面的最后一个代码部分是 Main 类:

public class RunGame {

public static void main(String[] args) {
new Frame();
}
}

最佳答案

add(box);

这会将标签直接添加到 JFrame 中,其内容 Pane 使用 BorderLayout 进行布局。在没有任何约束的情况下将组件添加到边框布局时,默认情况下是CENTER,它只能显示单个组件。要修复它,请使用:

pane.add(box);

关于java - 将 JLabel 添加到使用 BoxLayout 的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39273965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com