public void testDialog()
{
JPanel myPanel = new JPanel();
JTextField tfNames [] = new JTextField[getNumOfPlayers()];
for(int i=0;i < getNumOfPlayers();i++)
{
tfNames[i] = new JTextField(20);
myPanel.add(new JLabel("Player " + (i+1)));
myPanel.add(tfNames[i]);
}
int result = JOptionPane.showConfirmDialog(null, myPanel,
"Please Enter The Player Names", JOptionPane.OK_CANCEL_OPTION);
playerNames = new String [getNumOfPlayers()];
if(result == JOptionPane.OK_OPTION)
{
for(int i=0;i < getNumOfPlayers();i++)
{
if(tfNames[i].getText() == null)
{
//NOT GETTING INSIDE HERE FOR ONE REASON OR ANOTHER
System.out.println("NULL FIELD" + i);
testDialog();
}
else
{
playerNames[i] = tfNames[i].getText();
System.out.println(playerNames[i]);
}
}
}
else if (result == JOptionPane.CANCEL_OPTION)
{
numPlayersDialog();
}
else
{
numPlayersDialog();
}
}
基本上,我试图检查单击“确定”按钮时其中一个文本字段是否为空,以及是否再次调用此方法,但由于某种原因,它永远不会进入代码片段检查是否textField 是否为空,即使它为空,它每次都会直接跳过它:/任何人都可以解释为什么吗?设置了一个小时试图找出原因,但未能找到原因:/谢谢,您可能有任何建议。
PS。如果在多个文本字段之一为空白时无法禁用“确定”按钮,请告诉我。最佳答案
因为tfNames[i].getText()
很可能返回一个空字符串,而不是null
。
也许你应该检查一下:
if(tfNames[i].getText() != null && tfNames[i].getText().isEmpty()){
// ...
}
关于java - 代码没有按预期执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15590492/