【问题标题】:No error yet no output. Help.(Sudoku solver getter) [closed]没有错误但没有输出。帮助。(数独求解器吸气剂)[关闭]
【发布时间】:2015-08-25 04:31:34
【问题描述】:

我想将文本字段a01, a02, ... 添加到数组a。 我想显示val 的值,以便知道文本是否是从文本字段中获取的。这段代码没有显示任何错误,但是,它也没有给我输出。

int i, j;

JTextField[][] a = new JTextField[9][9];

int[][] val = new int[9][9];

for (i = 0; i < 9; i++)
{
    for (j = 0; j < 9; j++)
    {
        val[i][j] = Integer.parseInt(a[i][j].getText());
        System.out.println(val[i][j]);
    }
}

这是我的老问题here

【问题讨论】:

  • 你确定执行到了for循环吗?你能放一个最小但完整的代码来重现这个问题吗?
  • 这是正常的数组初始化问题,您应该注意

标签: java user-interface netbeans sudoku solver


【解决方案1】:

你没有给他们价值

int i,j; // counter
JTextField[][] a = new JTextField[9][9];
for(i=0;i<9;i++)
{
    for(j=0;j<9;j++)
    {
        JTextField tf = new JTextField();
        tf.setText("a"+i+j);
        a[i][j] = tf;
    }
}

在您的版本中,对a[i][j].getText() 的调用应该引发 NullPointerException。这应该要么杀死你的应用程序,结束在控制台上,要么你有类似的地方

试试{ // 这里有更多代码 } 捕获(异常前){}

这会默默地吞下异常并且是非常糟糕的做法。

【讨论】:

  • 确实,OP 只创建了一个 JTextField 数组而没有对其进行初始化。尽管如此,我发现他在尝试访问未初始化的文本字段时没有收到 NullPointerException 感到惊讶。
  • 这意味着他尝试捕获或初始化它们但没有粘贴到这里
【解决方案2】:

您向我们展示的代码确实会产生错误 - 当您尝试通过 a[i][j].getText() 访问文本字段的文本时,它会引发 NullPointerException

您没有在数组a 中初始化JTextFields

ideone example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2021-06-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多