单击按钮应在将文本字段设置为可编辑之间切换。当GUI打开时,文本字段应该是可编辑的。
public void actionPerformed( ActionEvent evt)
{
if(inputField.setEditable() == (true))
{
inputField.setEditable(false);
}
else
{
inputField.setEditable(true);
resultMessage.setText("");
resultMessage.setText("Edit Button Pressed");
}
我在这里做错了什么?
我知道else语句是正确的,只是IF的开头是错误的,我不知道我哪里出错了。
其他问题:
public void actionPerformed( ActionEvent evt)
{
if(inputField.isEditable() == (true))
{
inputField.setEditable(false);
}
else
{
inputField.setEditable(true);
inputField.setText("");
resultMessage.setText("Edit Button Pressed");
}
if(inputField.getBackground() == Color.RED)
{
inputField.setBackground(Color.WHITE);
}
else
{
inputField.setBackground(Color.RED);
resultMessage.setText("Colour Button Pressed");
}
}
我现在有2个IF,但显然第一个IF将停止第二个IF工作如何解决这个问题,当我按下一个按钮来执行setEditable部分时,当我按下另一个按钮时它会做我的变色?
答案 0 :(得分:3)
你正在检查setEditable()
是否属实,这是没有意义的;毕竟,它返回void并需要一个布尔参数。更大的问题是您不应该通过“ setter ”字段检查可编辑状态,而应该是“ getter ”字段,此处为isEditable()
if (inputField.isEditable()) {
//....
} else {
//...
}
正如MadProgrammer指出的那样,这些信息在Java API中都很容易获得,您希望非常熟悉这些信息。
编辑,关于您的新问题:
我现在有2个IF,但显然第一个IF将停止第二个IF工作如何解决这个问题,当我按下一个按钮来执行setEditable部分时,当我按下另一个按钮时它会做我的变色?
不,第一个if / else将在第二个if / else块上具有无效。你的问题在别处。如果仍然很糟糕的话,请考虑使用附加信息作为stackoverflow的新问题。
另请注意,这是不必要的罗嗦:
if(inputField.isEditable() == (true))
并且如上所述写得更好:
if (inputField.isEditable())