我正在尝试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) 我正在编写一个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) 我正在尝试为我的舞台的一些属性创建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 ×3
javafx ×3
arguments ×1
bounds ×1
collections ×1
interface ×1
list ×1
parameters ×1
screen ×1
window ×1