Saya ingin menyembunyikan gambar yang ada di panggung aplikasi JavaFX. Saya ingin itu menghilang dengan menyusut.

Katakanlah ada beberapa:

@FXML
private ImageView iv;
private Image img = new Image(...);

Ukuran img asli adalah 100x100 piksel

Kemudian

iv.setImage(img);
iv.setFitWidth(50);

Selanjutnya saya membuat metode seperti itu:

private Timeline shrink(ImageView iv)
   {
        final Timeline animation = new Timeline();

           animation.getKeyFrames().addAll(
                   new KeyFrame(Duration.ZERO,
                           new KeyValue(iv.fitWidthProperty(), 50)
                   ),
                   new KeyFrame(Duration.millis(400),
                           new KeyValue(iv.fitWidthProperty(), 0)
                   )
           );
        animation.setCycleCount(1);
        animation.play();
    }   

Jadi setelah itu gambarnya mengecil, tapi tidak tetap dengan lebar 0, bahkan lebih parah lagi muncul lagi dalam ukuran aslinya: 100.

Apa yang harus saya lakukan agar tetap menyusut? Saya tidak ingin menyembunyikannya dengan setVisibile karena saya membutuhkan ruang ekstra nanti untuk mengisinya dengan beberapa teks.

1
Karol K 9 Agustus 2019, 21:18

1 menjawab

Jawaban Terbaik

Oke, salahku...

0 adalah untuk default, jadi itu sebabnya gambar muncul dalam ukuran aslinya. Itu perlu diatur ke 0.01 misalnya dan kemudian mungkin mengatur visibilitas ke false. Tapi saya yakin ada cara yang lebih baik dan lebih baik untuk melakukannya.

2
Karol K 9 Agustus 2019, 18:38