在JavaFX中,设置单元格背景颜色可以通过使用自定义的单元格工厂(TableCellFactory)来实现。以下是一个完整的示例代码:
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Callback;
public class CellBackgroundExample extends Application {
public static class Person {
private final SimpleStringProperty name;
private final SimpleStringProperty age;
public Person(String name, String age) {
this.name = new SimpleStringProperty(name);
this.age = new SimpleStringProperty(age);
}
public String getName() {
return name.get();
}
public void setName(String name) {
this.name.set(name);
}
public String getAge() {
return age.get();
}
public void setAge(String age) {
this.age.set(age);
}
}
@Override
public void start(Stage primaryStage) {
TableView<Person> tableView = new TableView<>();
ObservableList<Person> data = FXCollections.observableArrayList(
new Person("John", "25"),
new Person("Jane", "30"),
new Person("Mike", "35")
);
tableView.setItems(data);
TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn<Person, String> ageColumn = new TableColumn<>("Age");
ageColumn.setCellValueFactory(new PropertyValueFactory<>("age"));
tableView.getColumns().add(nameColumn);
tableView.getColumns().add(ageColumn);
ageColumn.setCellFactory(new Callback<>() {
@Override
public TableCell<Person, String> call(TableColumn<Person, String> param) {
return new TableCell<>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
setStyle("");
} else {
setText(item);
int age = Integer.parseInt(item);
if (age < 30) {
// 设置背景颜色为红色
setBackground(Color.RED);
} else {
// 设置背景颜色为绿色
setBackground(Color.GREEN);
}
}
}
};
}
});
StackPane root = new StackPane(tableView);
primaryStage.setScene(new Scene(root, 300, 200));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
这个例子创建了一个包含姓名和年龄的表格,根据年龄的不同设置了不同的背景颜色。如果年龄小于30岁,单元格的背景将被设置为红色,否则为绿色。
注意,在这个例子中,我们通过使用TableCell的setStyle方法设置了单元格的背景颜色。如果需要其他自定义样式,可以根据需要使用CSS样式。
更多关于JavaFX的信息和相关产品介绍,你可以访问腾讯云官方网站的JavaFX相关页面: JavaFX 相关产品和产品介绍链接地址
列表标签
有序列表:标签 领取专属 10元无门槛券 手把手带您无忧上云
type=””>属性值有A,a,I,i,1
start=”“> 属性值为数字
有序列表的列表项
type=””>属性值有disc circle square
无序列表的列表项
列表的标题
;列表的列表项
表格标签
表格的属性
背景颜色
边框
背景
宽度
单元格与单元格之间的距离
单元格与字体之间的距离
高度
对齐,值:left right center
边框颜色
表格的表头标签。具有 的所有属性默认加粗居中
表格的行
bgcolor 背景颜色
backgroung 背景
height 高度
align 行的水平对齐方式
值有 right left center
valign 行的垂直对齐方式
值有 top bottom middle
单元格
bgcolor 背景颜色
backgroung 背景图片
width 宽度
height 高度
align 单元格的水平对齐方式
ralign 单元格的垂直对齐方式
rowspan 合并行(垂直合并)
colspan 合并列(水平对齐方式)
表格
表格是用来展示数据的
width 和 height 一般只写一个另一个会等比例改变
表格标签
表格的属性
背景颜色
边框
背景
宽度
单元格与单元格之间的距离
单元格与字体之间的距离
高度
对齐,值:left right center
边框颜色
表格的表头标签。具有 的所有属性默认加粗居中
表格的行
bgcolor 背景颜色
backgroung 背景
height 高度
align 行的水平对齐方式
值有 right left center
valign 行的垂直对齐方式
值有 top bottom middle
单元格
bgcolor 背景颜色
backgroung 背景图片
width 宽度
height 高度
align 单元格的水平对齐方式
ralign 单元格的垂直对齐方式
rowspan 合并行(垂直合并)
colspan 合并列(水平对齐方式)
列表标签
有序列表:标签
type=””>属性值有A,a,I,i,1
start=”“> 属性值为数字
有序列表的列表项
type=””>属性值有disc circle square
无序列表的列表项
列表的标题
;列表的列表项
图像:图像标签
图片的路径
图片的高度
<img heigh
php学习之html属性-表格(六)
table标记的属性:
border:表格边框 值:数字
align:表格在网页中的水平方向
编号 //标题单元格(表头)
姓名
年龄
.......
001 //普通单元格
张三
23
扫码
相关资讯
活动推荐