首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的程序不使用变量?

为什么我的程序不使用变量?
EN

Stack Overflow用户
提问于 2014-09-19 17:07:20
回答 1查看 63关注 0票数 1

我正在尝试制作一个面向对象的JavaFX程序,但是我遇到了一个问题,我似乎无法修复,基本上窗口变量都是设置好的,当我将它们打印到控制台时,它们都是设置好的,但是当我在start方法中使用它们时,它似乎并不承认它们在那里。

主修班:

代码语言:javascript
复制
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);
    }
}

窗口类:

代码语言:javascript
复制
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();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-19 18:05:53

我认为*您在这里要做的不是构造窗口对象,然后以现在的方式调用Window.launch,而是通过传递到Window.launch的String[] args来漏斗宽度、高度和所有这些值。文档说,您可以通过getParameters()返回这些值,因此如下所示:

代码语言:javascript
复制
//in main
String[] launchArgs = new String[] {"Width=800", "Height=600"};
Window.launch(Window.class, launchArgs);

..........................


//in start(Stage)

String[] args = getParameters();
for (String s : args) {
     if (s.contains("Width")) {
        //parse and set the window width here
     }
}

参见:http://docs.oracle.com/javafx/2/api/javafx/application/Application.html#launch(java.lang.Class

当然,这假设您希望能够从main中为这些类字段提供任意值。如果不是,我只会硬编码一个默认值,或者从开始(阶段)方法中的配置中提取它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25939060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档