小编Lil*_*den的帖子

创建可观察列表/集合

我正在尝试ChoiceBox在JavaFX 8中创建一个需要的Collection.我无法弄清楚如何创建一个Collection...如果我尝试:

 ObservableList<String> list = new ObservableList<String>();
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说我无法实例化,ObservableList因为它是抽象的.可以理解的.如果我查看文档,ObservableList我可以看到SortedList implements ObservableList,但我不能这样做:

 ObservableList<String> list = new SortedList<String>();
Run Code Online (Sandbox Code Playgroud)

因为没有适用的构造函数.显然我需要ObservableList传递给SortedList,这是奇怪的,因为我无法创建一个ObservableList.

constructor SortedList.SortedList(ObservableList<? extends String>,Comparator<? super String>) is not applicable
  (actual and formal argument lists differ in length)
constructor SortedList.SortedList(ObservableList<? extends String>) is not applicable
  (actual and formal argument lists differ in length)
Run Code Online (Sandbox Code Playgroud)

我不知道如何解读.如果我试试

 ObservableList<String> list = new SortedList<SortedList<String>>();
 //or
 ObservableList<String> list = new SortedList<ObservableList<String>>();
Run Code Online (Sandbox Code Playgroud)

出于绝望,我得到了一个更复杂的错误.

    SortedList<String> …
Run Code Online (Sandbox Code Playgroud)

java collections javafx interface list

29
推荐指数
1
解决办法
6万
查看次数

将javafx窗口保持在屏幕边界内

我正在编写一个javafx应用程序,我想让我的窗口不要超出屏幕范围,因为没有太多用处.因此,例如,窗口不应该被拖动,以便它的一半不在屏幕上.

public class ui extends Application{
    public static void main (String[] args){
        launch(args);
    }
    public void start(Stage mainStage){
        mainStage.initStyle(StageStyle.DECORATED);
        Rectangle2D mainScreen = Screen.getPrimary().getVisualBounds();
        mainStage.setWidth(mainScreen.getWidth());
        mainStage.setHeight(mainScreen.getHeight());

        BorderPane mainPane = new BorderPane(background);

        Scene mainScene = new Scene(mainPane, Color.BLACK);
        mainStage.setScene(mainScene);

        mainStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

java javafx window screen bounds

4
推荐指数
1
解决办法
2055
查看次数

类型ChangeListener不接受参数

我正在尝试为我的舞台的一些属性创建ChangeListeners,但我无法弄清楚如何...

mainScene.widthProperty().addListener(new ChangeListener<Number>() {
    @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
        System.out.println("Width: " + newSceneWidth);
    }
});
Run Code Online (Sandbox Code Playgroud)

给出错误"类型ChangeListener不接受参数".

    mainScene.widthProperty().addListener(new ChangeListener<>() {
        @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
            System.out.println("Width: " + newSceneWidth);
        }
    });
Run Code Online (Sandbox Code Playgroud)

给出"无法推断ChangeListener的类型参数".如果你做的话,感觉就像是"该死的,如果你不这样做,该死的话".在<>之后删除括号会产生大量错误...

编辑:进口:

import javafx.application.Application;

import javafx.stage.*;

import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.image.*;
import javafx.scene.paint.*;
import javafx.beans.*;
import javafx.beans.property.*;

import javafx.geometry.*;
Run Code Online (Sandbox Code Playgroud)

java parameters arguments javafx changelistener

1
推荐指数
1
解决办法
1817
查看次数