Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JButton上切换文本_Java_Swing_If Statement_Jbutton - Fatal编程技术网

Java 在JButton上切换文本

Java 在JButton上切换文本,java,swing,if-statement,jbutton,Java,Swing,If Statement,Jbutton,这个对你来说可能很容易。但我被卡住了,想不出一个算法来实现这一点。我想显示一个JTextField,并将JButton上的文本更改为“隐藏”,如果是“搜索”。如果 JButton上的文本为“Search”,JTextBox应出现,反之亦然,如果文本为“Hide”,则使JTextField不可见,并将JButton上的文本更改为“Search” 我就是这样做的: private void switchBtnText(){ searchTxtField.setVisible(true); btn

这个对你来说可能很容易。但我被卡住了,想不出一个算法来实现这一点。我想显示一个JTextField,并将JButton上的文本更改为“隐藏”,如果是“搜索”。如果 JButton上的文本为“Search”,JTextBox应出现,反之亦然,如果文本为“Hide”,则使JTextField不可见,并将JButton上的文本更改为“Search” 我就是这样做的:

private void switchBtnText(){
 searchTxtField.setVisible(true);
 btnSearch.setText("Hide");

 if(btnSearch.getText().equals("Hide")){
     btnSearch.setText("Search");
     searchTxtField.setVisible(false);
 }
}
如果我注释If部分,它将显示JTextField。我的问题是返回到默认设置,即一个JButton,其中“Search”为文本,JTextField不可见。 然后在ActionEvent中调用该方法。我以前在C#中做过,所以我知道我很接近。
先谢谢你。最快、最好的答案将被投票通过并被接受。

虽然我还没有测试过,但这应该是可行的

//btn action

private void toggleVisible(){
    String btnVal = btnSearch.getText();
    if(btnVal.equals("Search")){
        searchTxtField.setVisible(true); // or however you are showing search field
        btnSearch.setText("Hide");
    }else{
         searchTxtField.setVisible(false);
         btnSearch.setText("Search");
    }
}

虽然我还没有测试过,但它应该可以工作

//btn action

private void toggleVisible(){
    String btnVal = btnSearch.getText();
    if(btnVal.equals("Search")){
        searchTxtField.setVisible(true); // or however you are showing search field
        btnSearch.setText("Hide");
    }else{
         searchTxtField.setVisible(false);
         btnSearch.setText("Search");
    }
}

看看你的执行顺序

  • 设置要“隐藏”的文本
  • 如果文本等于“隐藏”,则将文本更改为“显示”
试着改变逻辑,让你先检查文本,然后决定应该做什么

  • 如果文本等于“隐藏”,则将文本更改为“显示”
  • 否则,将文本更改为“隐藏”

看看您的执行顺序

  • 设置要“隐藏”的文本
  • 如果文本等于“隐藏”,则将文本更改为“显示”
试着改变逻辑,让你先检查文本,然后决定应该做什么

  • 如果文本等于“隐藏”,则将文本更改为“显示”
  • 否则,将文本更改为“隐藏”

我完全按照你说的做了尝试,但没有成功。谢谢你的回答。EDI:哦,在actionEvent中,我使用getActionCommand查看是否单击了“搜索”按钮。我改为getSource(),它成功了:)我完全按照你说的做了尝试,但没有成功。谢谢你的回答。EDI:哦,在actionEvent中,我使用getActionCommand查看是否单击了“搜索”按钮。我将其改为getSource(),它成功了:)