javafx如何制作一个显示和隐藏标签的按钮

wnavrhmk  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(493)

我现在有一个按钮来显示某些文本

roll.setOnAction(c -> {
      Label text = new Label("Hello");
      root.getChildren().add(text);             
   });

我希望同样的滚动按钮,当按下另一次,以“隐藏”或“删除”标签。
我已经试过了

roll.setOnAction(c -> {
      Label text = new Label("Hello");
      root.getChildren().add(text);             
   });
      roll.setOnAction(c -> {
      root.getChildren().remove(text);          
   });

这只适用于2台压力机。我想第三次按重新显示标签等等。
我该怎么做?我不想一次又一次地在其内部添加roll.setonaction。

mcdcgff0

mcdcgff01#

最简单的方法,我发现删除一个标签视觉上,但仍然保持在未来使用的场景图形是设置其不透明度为零,或设置可见性为假。

text.setOpacity(0);
text.setVisibile(false);

由于每次都需要不同的标签示例(可能更仔细地考虑原因),因此可以使用变量来执行类似的操作

Label text = null;

roll.setOnAction(c -> {
    if (text == null) {
        text = new Label("Hello");
        root.getChildren().add(text);
    }
    else {
        root.getChildren().remove(text);
        text = null
    }                 
});

相关问题