2017-11-24 3 views
1

새내기가 javafx입니다. 현재 내 이미지가 내 배경이 될 수 없습니다. 어리석은 것 같습니다. 여기에 코드가 있습니다. 어떤 도움을 주셔서 감사합니다.배경 이미지가 작동하지 않습니다. javaFX

package game; 
import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Stage; 
import javafx.scene.shape.Circle; 
import javafx.scene.paint.Color; 
import javafx.scene.layout.Pane; 
import javafx.scene.layout.BackgroundImage; 
import javafx.scene.layout.BackgroundSize; 
import javafx.scene.layout.Background; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.BackgroundRepeat; 
import javafx.scene.layout.BackgroundPosition; 
public class appgame extends Application { 

    Button button; 

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

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     primaryStage.setTitle("Title of the Window"); 
     Pane p = new HBox(); 
     p.setPadding(new javafx.geometry.Insets(5,5,5,5)); 
     Image image = new Image("file:/home/rex/Documents/codes/java/bg1.jpg"); 

BackgroundImage backgroundImage = new BackgroundImage(image,BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.CENTER, backgroundSize); 

Background background = new Background(backgroundImage); 

     Scene scene = new Scene(p, 306, 460); 

     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 
} 

내 배경을 내 장면에 연결할 수 없으므로 내 배경을 내 배경으로 설정하십시오. 현재이 코드는 배경 이미지가없는 빈 스테이지 만 보여줍니다. 미리 감사드립니다.

답변

1

인스턴스화 된 창 (p)에 배경을 추가하는 것을 잊었습니다.

package appgame; 

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.image.Image; 
import javafx.scene.layout.*; 
import javafx.stage.Stage; 

import static javafx.scene.layout.BackgroundPosition.CENTER; 
import static javafx.scene.layout.BackgroundRepeat.NO_REPEAT; 
import static javafx.scene.layout.BackgroundRepeat.REPEAT; 
import static javafx.scene.layout.BackgroundSize.*; 

public class AppGame extends Application { 

    private static final String BACKGROUND_PATH = "<path to background>"; 

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

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     Pane p = new HBox(); 
     p.setPadding(new javafx.geometry.Insets(5,5,5,5)); 
     //Set your background! 
     p.setBackground(new Background(new BackgroundImage(new Image(BACKGROUND_PATH), REPEAT, NO_REPEAT, CENTER, DEFAULT))); 

     primaryStage.setTitle("Title of the Window"); 
     primaryStage.setScene(new Scene(p, 306, 460)); 
     primaryStage.show(); 
    } 
} 

이 (내 파일 시스템에 PNG를 사용) 결과 : 당신은 또한 자바 FX 학습을위한 좀 자원을 줄 수 있다면

enter image description here

+0

감사 @skubski 난 정말 감사하겠습니다, 모든 자원 전 냄새가 심하다. 미리 감사드립니다. –

+0

개인적으로 [시작하기] (https://docs.oracle.com/javafx/2/get_started/jfxpub-get_started.htm)를 읽었으며 [Mastering-JavaFX] (https://www.amazon.com/Mastering-JavaFX-Controls-Oracle-Press/dp/0071833773/ref=pd_lpo_sbs_14_img_0?_encoding=UTF8&psc=1&refRID=WEYJ9N4TBTRB4VRJR68N) (오라클). 그러나 완벽하게 만드는 것은 연습입니다. ;) – skubski

+0

내가하려는 것은 낙하산 공포라고 불리는 게임을 만드는 것입니다. 오라클 설명서에는 JavaFX의 애니메이션 부분이 있습니까? 이 모든 질문에 죄송합니다. 고마워요. –

관련 문제