文章目录
- 1. **背景颜色**
- CSS
- Java代码
- 2. **文本颜色**
- CSS
- Java代码
- 3. **边框**
- CSS
- Java代码
- 4. **鼠标悬停效果**
- CSS
- 5. **选中状态**
- CSS
- 6. **字体样式(粗体、斜体等)**
- CSS
- Java代码
- 7. **行高**
- CSS
- Java代码
- 8. **禁用编辑功能**
- Java代码
- 9. **自定义图标或图形**
- Java代码
- 10. **工具提示**
- Java代码
- 11. **限制文本长度并添加省略号**
- CSS
- Java代码
- 额外:**响应式设计**
- CSS
1. 背景颜色
CSS
.table-cell-special {-fx-background-color: lightblue; /* 设置背景颜色 */
}
Java代码
setStyle("-fx-background-color: lightblue;");
2. 文本颜色
CSS
.table-cell-text-color {-fx-text-fill: red; /* 设置文本颜色为红色 */
}
Java代码
setStyle("-fx-text-fill: red;");
3. 边框
CSS
.table-cell-bordered {-fx-border-color: black; /* 边框颜色 */-fx-border-width: 1px; /* 边框宽度 */-fx-border-style: solid; /* 边框样式 */
}
Java代码
setStyle("-fx-border-color: black; -fx-border-width: 1px; -fx-border-style: solid;");
4. 鼠标悬停效果
CSS
.table-cell:hover {-fx-background-color: lightgray; /* 悬停时的背景颜色 */-fx-cursor: hand; /* 改变鼠标指针形状 */
}
5. 选中状态
CSS
.table-row-cell:selected, .table-cell:selected {-fx-background-color: dodgerblue; /* 选中行或单元格的背景颜色 */-fx-text-fill: white; /* 选中文本的颜色 */
}
6. 字体样式(粗体、斜体等)
CSS
.table-cell-bold {-fx-font-weight: bold; /* 粗体 */
}.table-cell-italic {-fx-font-style: italic; /* 斜体 */
}
Java代码
setStyle("-fx-font-weight: bold;");
setStyle("-fx-font-style: italic;");
7. 行高
CSS
.table-row-cell {-fx-cell-size: 30px; /* 设置行高 */
}
Java代码
行高的调整通常通过CSS完成,但在Java代码中可以通过自定义TableRow
来间接实现:
t1.setRowFactory(tv -> {TableRow<Teacher> row = new TableRow<>();row.setStyle("-fx-cell-size: 30px;");return row;
});
8. 禁用编辑功能
Java代码
t1.setEditable(false); // 禁用列的编辑功能
9. 自定义图标或图形
Java代码
你可以创建一个自定义的TableCell
,并在其中使用ImageView
显示图标。
t1.setCellFactory(column -> new TableCell<Teacher, String>() {private final ImageView imageView = new ImageView("path/to/icon.png");@Overrideprotected void updateItem(String item, boolean empty) {super.updateItem(item, empty);if (empty || item == null) {setText(null);setGraphic(null);} else {setText(item);setGraphic(imageView);}}
});
10. 工具提示
Java代码
Tooltip tooltip = new Tooltip("这是额外的信息");
t1.setCellFactory(column -> new TableCell<Teacher, String>() {@Overrideprotected void updateItem(String item, boolean empty) {super.updateItem(item, empty);if (item != null && !empty) {setTooltip(tooltip);} else {setTooltip(null);}}
});
11. 限制文本长度并添加省略号
CSS
.table-cell-ellipsis {-fx-padding: 0 5 0 5;-fx-effect: null;-fx-background-insets: 0;-fx-background-radius: 0;-fx-text-overrun: ellipsis; /* 当文本超出容器宽度时显示省略号 */
}
Java代码
setStyle("-fx-text-overrun: ellipsis;");
额外:响应式设计
如果你想让表格在不同屏幕尺寸下都能有良好的显示效果,可以考虑使用CSS媒体查询来根据屏幕大小调整样式:
CSS
@media only screen and (max-width: 600px) {.table-cell {-fx-font-size: 12px;}
}