gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:47 26 4
gpt4 key购买 nike

我正在尝试制作一个面向对象的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();
}
}

最佳答案

我认为*您在这里要做的不是构造 Window 对象,然后以您现在的方式调用 Window.launch,而是通过 String[ 漏斗宽度高度的值以及所有这些值] args 传递到 Window.launch。文档说您可以通过 getParameters() 检索这些值,因此它看起来像这样:

//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 , java.lang.String...)

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

关于java - 为什么我的程序不使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25939060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com