javafx treeitem拖动后的背景怎么去掉
时间: 2023-06-18 08:03:50 浏览: 55
JavaFX中TreeItem的默认样式在拖动时会显示一个半透明的背景,如果需要去掉这个背景可以通过设置CSS样式来实现。
以下是一个示例代码:
```java
treeView.setStyle("-fx-show-root=false; -fx-selection-bar-non-focused-opacity: 0;");
```
其中`-fx-show-root=false`表示隐藏根节点,`-fx-selection-bar-non-focused-opacity: 0;`表示当TreeItem失去焦点时,选中的行的透明度为0,去掉了拖动时的半透明背景。
相关问题
javafx 怎么实现拖动TreeItem
要在 JavaFX 中实现拖放 `TreeItem`,可以使用 `TreeView` 的 `setCellFactory` 方法来自定义每个 `TreeItem` 的外观和行为。以下是一个简单的实现:
```java
final TreeView<String> treeView = new TreeView<>();
treeView.setRoot(root); // root 是根节点
treeView.setCellFactory(new Callback<TreeView<String>, TreeCell<String>>() {
@Override
public TreeCell<String> call(TreeView<String> tv) {
TreeCell<String> cell = new TreeCell<String>() {
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
setText(item);
}
};
cell.setOnDragDetected(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
Dragboard db = cell.startDragAndDrop(TransferMode.MOVE);
ClipboardContent content = new ClipboardContent();
content.putString(cell.getItem());
db.setContent(content);
event.consume();
}
});
cell.setOnDragOver(new EventHandler<DragEvent>() {
@Override
public void handle(DragEvent event) {
if (event.getGestureSource() != cell && event.getDragboard().hasString()) {
event.acceptTransferModes(TransferMode.MOVE);
}
event.consume();
}
});
cell.setOnDragEntered(new EventHandler<DragEvent>() {
@Override
public void handle(DragEvent event) {
if (event.getGestureSource() != cell && event.getDragboard().hasString()) {
cell.setOpacity(0.3);
}
}
});
cell.setOnDragExited(new EventHandler<DragEvent>() {
@Override
public void handle(DragEvent event) {
cell.setOpacity(1);
}
});
cell.setOnDragDropped(new EventHandler<DragEvent>() {
@Override
public void handle(DragEvent event) {
Dragboard db = event.getDragboard();
boolean success = false;
if (db.hasString()) {
TreeItem<String> draggedItem = new TreeItem<>(db.getString());
TreeItem<String> parent = treeView.getSelectionModel().getSelectedItem();
parent.getChildren().add(draggedItem);
success = true;
}
event.setDropCompleted(success);
event.consume();
}
});
return cell;
}
});
```
这个实现中,`setOnDragDetected` 方法设置了当用户开始拖动一个节点时要执行的操作,`setOnDragOver` 方法设置了当用户将一个节点拖到另一个节点上时要执行的操作,`setOnDragDropped` 方法设置了当用户松开鼠标时要执行的操作。此外,还设置了 `setOnDragEntered` 和 `setOnDragExited` 方法以改变节点的外观。
javafx ProgressBar CCS修改背景颜色
根据提供的引用内容,JavaFX ProgressBar的背景颜色可以通过CSS样式表进行修改。具体步骤如下:
1. 创建一个CSS文件,例如progressBarStyle.css,并在其中添加以下代码:
```css
.progress-bar {
-fx-background-color: #FF0000; /* 将背景颜色设置为红色 */
}
```
2. 在JavaFX应用程序中加载CSS文件并将其应用于ProgressBar。以下是一个示例代码:
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// 创建一个ProgressBar
ProgressBar progressBar = new ProgressBar();
// 创建一个VBox并将ProgressBar添加到其中
VBox root = new VBox();
root.getChildren().add(progressBar);
// 创建一个Scene并将VBox添加到其中
Scene scene = new Scene(root, 300, 200);
// 加载CSS文件并将其应用于ProgressBar
scene.getStylesheets().add(getClass().getResource("progressBarStyle.css").toExternalForm());
// 设置Scene并显示Stage
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
运行该应用程序后,ProgressBar的背景颜色将变为红色。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)