code_runner:
私はJavaFXのを勉強しています。私は、数秒後にいずれかによって、いくつかのアイコンのいずれかを表示したいです。私のコードは動作しません。私はいくつかのコードを書かれています。そして、アイコンはと呼ばれる別のフォルダに保存された画像。
public class Main extends Application {
ImageView imv;
Scene scene;
@Override
public void start(Stage primarystage) {
gp=new GridPane();
gp.setPadding(new Insets(0, 10, 10, 10));
...
gp.setVgap(0);
gp.setHgap(5);
imv=new ImageView();
// logic for displaying images
scene=new Scene(gp, 450, 300, Color.TRANSPARENT);
primarystage.setScene(scene);
primarystage.setTitle("WINDOW");
primarystage.show();
}
public static void main(String[] args) {
launch(args);
}
}
私は、ウェブ上で適切な答えを見つけることができませんでした。私が知っている必要があります他に何、それがどのように行われるかのロジックを知りたいです。私は簡単に表示することができ、単一の画像から。しかし、私は複数の画像一つ一つを表示する方法を知りません。
Tanzeel:
さてさて、私はあなたのために何かをしようとしました。私は、あなたが探している内容を正確に把握していないが、このコードは、少なくともあなたにいくつかのアイデアを与えるだろう。私はいくつかの仮定を行いました。あなたは名前と同じディレクトリの下にフォルダをした画像 1.png、2.png、3.pngなどとして、すべてのアイコン(表示される)があります。私は、自動的にそれぞれのパッケージから必要なクラスをインポートしますこれはNetbeans 8.2を使用しています。
import javafx.application.Application;
import javafx.concurrent.Task;
...
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
...
public class Main extends Application {
ImageView imv;
Label label;
String file="";
GridPane gridPane;
Scene scene;
Task<Void> slideShow;
@Override
public void start(Stage primarystage) {
gridPane=new GridPane();
gridPane.setPadding(new Insets(0, 10, 10, 10));
// business logic for slide show
startSlideShow();
imv=new ImageView();
label = new Label();
label.setGraphic(imv);
gridPane.add(label, 5, 0, 1, 1);
scene=new Scene(gridPane, 450, 300, Color.TRANSPARENT);
primarystage.setScene(scene);
primarystage.show();
// spawning a new thread for this task
new Thread(slideShow).start();
}
public void startSlideShow() {
slideShow= new Task<Void>() {
@Override
protected Void call() {
int i = 1;
while (true) {
try {
Thread.sleep(1000);
updateMessage(i + ".png");
} catch (Exception e) {
}
i++;
}
}
};
task1.messageProperty().addListener((observable, oldValue, newValue) -> {
Image image = new Image(getClass().getResourceAsStream("images/" + newValue));
imv.setImage(image);
});
}
public static void main(String[] args) {
launch(args);
}
}
これはあなたの要件に応じてコードをカスタマイズすることができます動作します願っています。