-1

单击该按钮应在将文本字段设置为可编辑或不可编辑之间切换。当 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 部分时,当我按下另一个按钮时,它将执行我的更改颜色?

4

1 回答 1

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())
于 2013-05-01T01:37:40.073 回答