불행히도 나는 JavaFX CSS로 그 작업을 수행하는 방법을 찾지 못했지만 다른 해결책을 찾았습니다. 즉, HBox
에서 파생 된 MyTrack
클래스를 만들고 음악/mp3 아이콘으로 ImageView
을 추가하고 Label
을 텍스트와 함께 추가했습니다. 여기에 약간의 트릭이 있습니다. 아래쪽 테두리 색상을 설정하여 레이블에 밑줄을 긋고 의 그래픽으로 MyTrack
을 설정하십시오.
package underlined.treeview;
import javafx.application.Application;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.stage.Stage;
import java.util.Arrays;
import java.util.List;
public class TreeViewApp extends Application {
public static void main(String[] args) {
launch(args);
}
private Parent createContent() {
TreeItem<String> treeRoot = new TreeItem<>("Root node");
List<TreeItem<String>> tracks = Arrays.asList(
new TreeItem<>(""),
new TreeItem<>(""),
new TreeItem<>(""));
for (TreeItem<String> track : tracks)
track.setGraphic(new MyTrack("Track"));
treeRoot.getChildren().addAll(tracks);
TreeView treeView = new TreeView();
treeView.setShowRoot(true);
treeView.setRoot(treeRoot);
treeRoot.setExpanded(true);
return treeView;
}
@Override
public void start(Stage primaryStage) throws Exception {
Scene scene = new Scene(createContent());
primaryStage.setScene(scene);
primaryStage.show();
}
}
및 MyTrack
클래스 :
package underlined.treeview;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
public class MyTrack extends HBox {
public MyTrack(String text) {
Label label = new Label(text);
label.setStyle("-fx-border-color: aqua;" +
"-fx-border-width: 0 0 1 0;");
Image image = new Image(getClass().getResource("/img/icon/mp3.png")
.toExternalForm());
ImageView imageView = new ImageView(image);
imageView.setFitWidth(16);
imageView.setFitHeight(16);
getChildren().addAll(imageView, label);
}
}
그리고 짜잔! 내 예를 들어 아래쪽 테두리 색상에서
여기 아쿠아입니다. TreeItem
은 빈 String
으로 인스턴스화해야합니다. 그것은 당신이 직접 그것을 최적화하는 데 필요한 예제였습니다.
내가 treecells 착각하지 않은 경우 유휴 색상이 빨간색이지만 그들이 당신을 선택했을 때 흰색과 밑줄이 그어지기를 원할 것입니다. 맞습니까? – Vanguard
@Vanguard 안녕하세요 :). 내가 원한 것은 밑줄이 항상 하얗다는 것이다. 트리 셀 텍스트의 색상은 스타일 클래스에 따라 빨간색 또는 흰색 중 하나입니다. – GOXR3PLUS