2016-01-10 160 views
0

好吧,這是我使用的代碼。它大部分來自JavaFX教程hereJava ImageView沒有出現在屏幕上

我想讓程序在點擊按鈕時加載圖片。但它會執行打印,但它不會加載圖片。

import javafx.application.Application; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.StackPane; 
    import javafx.stage.Stage; 
    import javafx.scene.image.*;; 

    public class Browser extends Application { 


     @Override 
     public void start(Stage primaryStage) { 

      Button btn = new Button(); 
      btn.setText("Test"); 
      Image ph1 = new Image("ph1.jpg"); 
      ImageView disp1 = new ImageView(); 


      btn.setOnAction(new EventHandler<ActionEvent>() { 

       @Override 
       public void handle(ActionEvent event) { 
        System.out.println("Test1"); 

        disp1.setImage(ph1); 

        System.out.println("Test2"); 
       } 
      }); 

      StackPane root = new StackPane(); 
      root.getChildren().add(btn); 

    Scene scene = new Scene(root, 300, 250); 

      primaryStage.setTitle("Test"); 
      primaryStage.setScene(scene); 
      primaryStage.show(); 

     } 
    public static void main(String[] args) { 
      launch(args); 

     } 
    } 
+0

你從來沒有的ImageView添加到場景圖的任何地方。你需要像'root.getChildren()。add(disp1);'這樣的東西,儘管佈局會很奇怪。 –

回答

0

你還沒有加入disp1ImageViewrootStackPane

試試這個:

StackPane root = new StackPane(); 
root.getChildren().add(btn); 
root.getChildren().add(disp1); 
+0

非常感謝!我之前從未使用過Java,現在開始瞭解它如何工作,這要歸功於我正在構建的這個項目。非常感謝您的快速回復,非常感謝! – deeup511

+0

@ deeup511我很高興能幫上忙。祝你好運。 – Titus