【问题标题】:How to call an external object through a method [closed]如何通过方法调用外部对象[关闭]
【发布时间】:2013-12-29 09:08:33
【问题描述】:

我是 Java 新手,所以这可能是一个非常基本的问题,提前抱歉。这是我正在尝试制作的代码:

public class Main extends Application {     
    public void start(Stage stage) {

        BorderPane border = new BorderPane();        
        border.setTop(flowPane());

        Scene scene = new Scene(border);
        stage.setScene(scene);
        stage.show();
    }       
        private FlowPane flowPane(){

            FlowPane fPane = new FlowPane();

            Button btn = new Button("FlowPane1");
            btn.setPrefSize(100, 50);
            btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override public void handle(ActionEvent e) {
            border.setTop(flowPane1());
    }
});

            fPane.getChildren().add(btn);            
            fPane.setAlignment(Pos.CENTER);
            return fPane;
        }           
}

基本上,我希望在带有一个按钮的 Borderpane 中显示 Flowpane,当我单击该按钮时,我想让另一个 Flowpane(flowPane1) 出现而不是第一个。我的问题在于flowPane() 方法,border.setTop(flowPane1()); 行。边框对象不是方法中的内部对象,所以我必须做什么才能使其以某种方式工作,或者具有相同的效果?忽略没有flowPane1() 方法。

【问题讨论】:

    标签: java object methods javafx external


    【解决方案1】:

    “我的问题出在flowPane()方法,border.setTop(flowPane1());这一行。边框对象不是方法中的内部对象”

    我不熟悉 JavaFX,但我认为在所有 Java 中都应该如此。 BorderPane 对象不在flowpane() 方法的范围内,所以只需将其设为具有全局范围的类成员

    public class Main extends Application {  
    
        BorderPane border = new BorderPane();  <-- Now has a global scope    
    
        public void start(Stage stage) {
    
            // BorderPane border = new BorderPane();  <-- remove this
    

    【讨论】:

    • 非常感谢。当然,这很容易,但就像我说的,Java 新手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多