我想做一個面向對象的JavaFX程序,但我遇到了一個問題,我似乎無法修復,基本上窗口變量都設置了,當我將它們打印到控制檯時,他們都設置了,但是當我來在啓動方法中使用它們似乎並不承認它們在那裏。爲什麼我的程序不使用變量?
主要類:
import com.mersey.ui.Window;
public class Main
{
public static void main(String[] args)
{
Window win = new Window();
win.Create("Mersey", 980, 640, false);
Window.launch(Window.class, args);
}
}
窗口類:
package com.mersey.ui;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class Window extends Application
{
protected Stage WindowStage;
protected Pane WindowRoot;
protected Scene WindowScene;
protected String WindowTitle;
protected int WindowWidth;
protected int WindowHeight;
protected boolean WindowResizable;
public void Create(String title, int width, int height, boolean resizable)
{
WindowTitle = title;
WindowWidth = width;
WindowHeight = height;
WindowResizable = resizable;
/*
System.out.print(WindowTitle+"\n");
System.out.print(WindowWidth+"\n");
System.out.print(WindowHeight+"\n");
System.out.print(WindowResizable);*/
}
@Override
public void start(Stage stage) throws Exception
{
WindowStage = stage;
WindowRoot = new Pane();
WindowScene = new Scene(WindowRoot, WindowWidth, WindowHeight);
WindowStage.setScene(WindowScene);
WindowStage.setTitle(WindowTitle);
WindowStage.setWidth(WindowWidth);
WindowStage.setHeight(WindowHeight);
WindowStage.setMinWidth(WindowWidth);
WindowStage.setMinHeight(WindowHeight);
WindowStage.setResizable(WindowResizable);
WindowStage.show();
}
}
備註 - 將您的變量命名爲小寫字母。像'windowRoot'或'windowWidth'。 – csmckelvey 2014-09-19 17:15:36
我認爲它可能與這一行有關:Window.launch(Window.class,args);我不知道你正在使用這個api,但是這看起來似乎並沒有將你創建的Window實例傳遞給Window.launch方法,而是調用Create()方法,這意味着它可能啓動一個新創建的實例,而不是你的實例已經建成。 – 2014-09-19 17:51:41