我希望添加两个或更多圆圈作为组合框的选项。
Circle c1 = new Circle(10, 8, 5);
Circle c2 = new Circle(24, 8, 5);
Run Code Online (Sandbox Code Playgroud)
圆圈应该使用 CSS 样式单独着色
c1.setStyle("-fx-fill: red;");
c2.setStyle("-fx-fill: green;");
Run Code Online (Sandbox Code Playgroud)
或者直接用Java语法
c1.setFill(Color.RED);
c2.setFill(Color.GREEN);
Run Code Online (Sandbox Code Playgroud)
我的问题是该setGraphic()方法将单个Node对象作为参数,并且要形成该Node对象,需要进行布尔运算,例如Shape.union(c1, c2). 但这消除了之前应用的样式,所以Circle我把它们都变成了黑色,而不是红色和绿色。
下面是最小的例子。所有代码都可以放在一个.java文件中
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Shape;
import javafx.stage.Stage;
import javafx.util.Callback;
public class Test extends Application {
public static ObservableList<String> colours = FXCollections.observableArrayList("1", "2"); …Run Code Online (Sandbox Code Playgroud)