gpt4 book ai didi

java - 自定义 JFrame 类不出现

转载 作者:行者123 更新时间:2023-11-30 05:57:55 24 4
gpt4 key购买 nike

编译正常,但执行代码时看不到任何内容。我需要改变什么?

我已经删除了我的 Swing/AWT 导入,以便我可以发布问题。代码很短,我的问题也很短,但显然这还不够好......

class Exercise1 {
public static void main(String[] args) {
new MyFrame("Test");
}
}

class MyFrame extends JFrame{
public MyFrame(String title){
super(title);
int i = 2;
int j = 2;
JPanel[][] panelHolder = new JPanel[i][j];
setLayout(new GridLayout(i,j));
for(int m = 0; m < i; m++) {
for(int n = 0; n < j; n++) {
panelHolder[m][n] = new JPanel();
add(panelHolder[m][n]);
}
}
JTextField t1 = new JTextField();
JTextField t2 = new JTextField();
JTextField t3 = new JTextField();
panelHolder[2][0].add(t1);
panelHolder[2][1].add(t2);
panelHolder[2][2].add(t3);
setVisible(true);
}
}

最佳答案

This compiles fine but nothing is visible when it executes the code.

因为你遇到了运行时异常。

数组索引从 0 开始。

    int i = 2;
int j = 2;
JPanel[][] panelHolder = new JPanel[i][j];

您创建了一个二维数组,其中每 2 行中有 2 个值的空间。

    panelHolder[2][0].add(t1);
panelHolder[2][1].add(t2);
panelHolder[2][2].add(t3);

但是您尝试将组件添加到第三行/值,这会导致异常。

将数组大小更改为 3,或仅使用索引 0 和 1。

此外,当您创建 JTextField 时,请使用:

new JTextField(10);

因此文本字段具有合理的大小。

关于java - 自定义 JFrame 类不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52844080/

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