当前位置: 首页 > 知识库问答 >
问题:

如何显示或隐藏图像在条件与javafx

连德水
2023-03-14

我需要帮助使用JavaFX编写基于windows的应用程序。我只是想用if/else条件显示或隐藏一些图像。我真正想要的是这样的:如果x=1,那么显示image1如果x=2,则显示image2

我尝试了setvisible()和setDisable()方法来做到这一点,但是不起作用。

public class BoardSelection implements Initializable {
    @FXML
    public ImageView image1= new ImageView();
    @FXML
    public ImageView image2 = new ImageView();

    public int batteryVariation(int x){

        if(x=1){
            image1.setVisible(true);
            image2.setVisible(false);
        }
        if(x=2){
            image2.setVisible(false);
            image2.setVisible(true);
        }
        return x;
    }

    @Override
    public void initialize(URL location, ResourceBundle resources) {

    }

我的.fxml文件代码是:

<ImageView fx:id="image1" fitHeight="60.0" fitWidth="30.0" layoutX="118.0" layoutY="227.0">
      <image>
        <Image url="@../img/image1.png" />
      </image>
    </ImageView>
    <ImageView fx:id="image2" fitHeight="60.0" fitWidth="30.0" layoutX="191.0" layoutY="227.0" pickOnBounds="true" preserveRatio="true">
      <image>
        <Image url="@../img/image2.png" />
      </image>
    </ImageView>

共有1个答案

宇文峰
2023-03-14

在if语句中,您使用了赋值操作符(=)而不是比较操作符==。

public int batteryVariation(int x) {
    if (x == 1) {
        image1.setVisible(true);
        image2.setVisible(false);
    }
    if (x == 2) {
        image1.setVisible(false);
        image2.setVisible(true);
    }
    return x;
}

工作代码示例:

public class PicturesTestController implements Initializable {

    @FXML
    private TextField tf_testInput;

    @FXML
    private ImageView image1;

    @FXML
    private ImageView image2;

    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {
        image2.setVisible(false);
        tf_testInput.setOnAction(actionEvent -> batteryVariation(Integer.parseInt(tf_testInput.getText())));
    }

    public int batteryVariation(int x) {
        if (x == 1) {
            image1.setVisible(true);
            image2.setVisible(false);
        }
        if (x == 2) {
            image1.setVisible(false);
            image2.setVisible(true);
        }
        return x;
    }
}

无论如何,最好使用< code>setImage()方法来设置/更改< code>ImageView中的图片。

https://docs . Oracle . com/javase/8/Java FX/API/Java FX/scene/image/imageview . html

 类似资料:
  • 我正在从命令行用python运行mplfinance。我想隐藏(或不显示)绘图,因为我将绘图另存为一个。jpg。稍后,我将在图像查看器中查看绘图/图形/图像。 问题是,我必须关闭为脚本绘制的每个图像,以便继续定义下一个图。我不想在执行时看到图形,并且必须在脚本循环创建多个图形时关闭每个图像。换句话说就是“火了就忘”。 有没有办法隐藏(或不显示)mplFinance中的情节 谢谢你的帮助。 谢谢,

  • 问题内容: 我正在尝试创建一个程序,该程序执行一系列给定的用户输入。仅在某些情况下才需要几个用户输入,并且如果可能的话,我想仅在选择一个Checkbutton(表示存在要求这些输入的情况)时显示这些输入值的Entry框和Labels。我不确定该怎么做: 将我要添加的标签和条目框放在已经存在的行之间。 取消选中“选择”按钮时,“隐藏”标签和输入框,而不进行选择,这样,如果重新选择“选择”按钮,则可以

  • 问题内容: 我第一次弄乱React.js,找不到通过click事件在页面上显示或隐藏内容的方法。我没有在页面上加载任何其他库,所以我正在寻找使用React库的本机方法。到目前为止,这就是我所拥有的。当点击事件触发时,我想显示结果div。 问题答案: 大约在2020年做出反应 在回调中,调用状态挂钩的 setter函数以更新状态并重新渲染: JSFiddle 反应约2014年 关键是使用来更新点击处

  • 我现在尝试的是,如果我有一个图表,然后,当我点击一个按钮与“onchange”功能,它将显示几个图表。但当我点击后退,我有我想要的图表,但仍然有“图例”的第二个图表在第一个图表的顶部。 有没有办法去除它?我找到了,但它删除了所有图表的图例。 这是我的代码 null null 亲切地

  • 问题内容: 如何使用JSF显示/隐藏组件?我目前正尝试在javascript的帮助下做同样的事情,但没有成功。我不能使用任何第三方库。 谢谢| 阿比 问题答案: 通常,您需要通过其clientId获得该控件的句柄。本示例使用带有请求范围绑定的JSF2 Facelets视图来获取另一个控件的句柄: 确切的操作方式取决于您正在使用的JSF版本。有关较早的JSF版本,请参见此博客文章:JSF:使用组件标

  • 我找不到任何选项、设置或键盘快捷键来禁用或隐藏那个烦人的滚动条。我只是觉得它没有用,而且很分散注意力。 也不能像Atom一样编辑编辑器的CSS。