gpt4 book ai didi

java - JFrame 上的 JPanel 数组

转载 作者:行者123 更新时间:2023-11-29 07:32:20 25 4
gpt4 key购买 nike

public frame() {
JFrame frame = new JFrame("Test");
frame.setSize(400,300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
int i = 4;
int j = 4;
JPanel[][] panelHolder = new JPanel[i][j];

for (int a = 0; a < i; a++) {
for (int b = 0; b < j; b++) {
panelHolder[a][b] = new JPanel();
add(panelHolder[a][b]);
}
}
panelHolder[3][2].setForeground(Color.BLUE);
JButton enter = new JButton("Enter");
panelHolder[0][0].add(enter);

frame.setVisible(true);

当我尝试向面板添加组件或设置颜色时,没有任何变化,我使用了其他地方的这段代码,但前几天我把它记下来了,但再也找不到了,但是循环正在将 JPanels 添加到框架对吗?那么为什么我不能添加到 JPanel 中呢?

最佳答案

问题是您的构造函数中有一个与您的类同名的对象,但是在调用 setVisible() 时,您没有使用它。您可以通过让您的类扩展 JFrame,然后使用此构造函数来解决此问题:

public frame() {
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
int i = 4;
int j = 4;
JPanel[][] panelHolder = new JPanel[i][j];

for (int a = 0; a < i; a++) {
for (int b = 0; b < j; b++) {
panelHolder[a][b] = new JPanel();
add(panelHolder[a][b]);
}
}
panelHolder[3][2].setForeground(Color.BLUE);
JButton enter = new JButton("Enter");
panelHolder[0][0].add(enter);

setVisible(true);
}

关于java - JFrame 上的 JPanel 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40439093/

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