如何获得TableCell在类实现中的位置,以便可以执行以下操作:
@Override
public void updateItem(Integer item, boolean empty) {
super.updateItem(item, empty);
int x = thisCellColumnNumber();
int y = thisCellRowNumber();
if((x == 2) && (y == 3))
setStyle(".....");
Run Code Online (Sandbox Code Playgroud) 我有一个JavaFX TableView和ListView,它们都使用自定义单元格工厂。特别是我已经重写了updateItem方法,以便根据单元格值绑定特定的CSS类。
这是我的CSS文件的一部分:
.tissueCell {
-fx-text-fill: #F5AD11;
}
.tissueCell:selected {
-fx-background-color: #F5AD11;
-fx-text-fill: white;
}
.significantDataCell {
-fx-background-color: yellow;
-fx-text-fill: black;
}
.significantDataCell:selected {
-fx-background-color: white;
-fx-text-fill: black;
}
Run Code Online (Sandbox Code Playgroud)
对于ListView,一切都可以正常工作:以正确的颜色显示文本,并且在选择单元格时,文本变为白色,而背景则以正确的颜色填充。
我遇到了TableView问题。取消选择时,单元格中的文本将以选定的颜色显示,但是,当选定单元格时,背景将使用选定表单元格背景的默认JavaFX颜色填充,并且文本颜色将保持为#F5AD11(不会变为白色)。
使用.significantDataCell类的TableCell也会发生相同的情况。单元格以黄色背景和黑色文本正确显示,但是选择时没有任何变化,这次不会作为背景。
有任何想法吗?我做了很多研究,但找不到任何可行的解决方案。
我可以在表格单元格中设置一个微调器。
但问题是,当我使用 getSelectionModel() 时,我无法获取该值。
有什么办法可以做到这一点吗?
我当前使用的代码是这样的:
QuantitaCol.setCellValueFactory(new PropertyValueFactory<Strumento, Integer>("Quantita_Disp"));
QuantitaCol.setCellFactory(new Callback<TableColumn<Strumento,Integer>,TableCell<Strumento,Integer>>(){
@Override
public TableCell<Strumento, Integer> call(TableColumn<Strumento, Integer> param) {
TableCell<Strumento, Integer> cell = new TableCell<Strumento, Integer>(){
@Override
public void updateItem(Integer item, boolean empty) {
if(item!=null){
Spinner<Integer> quantita = new Spinner<Integer>(0, item, 1);
quantita.valueProperty().addListener(
(obs, oldValue, newValue) -> {
System.out.println("New value: "+item);
}
);
setGraphic(quantita);
}
}
};
return cell;
}
});
Run Code Online (Sandbox Code Playgroud) 我想问一下为什么在动态呈现ASP.NET表时设置TableCell的大小不起作用?
例如:
Table table = new Table();
TableRow row = new TableRow();
TableCell cell = new TableCell;
cell.Width = 30;
cell.Height = 30;
row.Cells.Add(cell);
//.... 10 more cells
table.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)
为什么细胞的大小不变?
我是java-swing的新手.我想在表格单元格中添加图标.但是当我在单元格中添加ImageIcon时,它只显示路径而不是图标.
这是我的代码.
public void createGUI(ArrayList<String> params, String type) {
try {
DefaultTableModel model = new DefaultTableModel();
model.addColumn("ParameterName");
model.addColumn("ParameterType");
model.addColumn("Operation");
for (int i = 0; i < params.size() - 4; i++) {
String param_name = params.get(i).toString().substring(0, params.get(i).toString().indexOf("["));
String param_type = params.get(i).toString().substring(params.get(i).toString().indexOf("[") + 1, params.get(i).toString().indexOf("]"));
//URL url = ClassLoader.getSystemClassLoader().getResource("");
ImageIcon image = new ImageIcon("/com/soastreamer/resources/delete_idle.png");
// JLabel label = new JLabel(image);
model.addRow(new Object[]{param_name, param_type.toUpperCase(),image});
}
Action delete = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
JTable table = (JTable) e.getSource();
int modelRow …
Run Code Online (Sandbox Code Playgroud) 我需要一个标签在另一个上面,但是如果标签在表格视图单元格内,那是不可能的。底部的标签向右移动,就在顶部的标签完成的地方。
如何让它们从相同的X但不同的Y开始?
提前致谢
我拿了一个我发现的定价表HTML/CSS/JS,并决定尝试弯曲它以满足我对给定页面的需求.不幸的是,我碰到了一堵墙.以下小提琴是目前表格的HTML和CSS的简单示例:
https://jsfiddle.net/jv89hopf/1/
为了使各列均匀地间隔开出跨页的宽度,无论我使用的列数的display:table
,table-layout:fixed
和display:table-cell
.这非常有效,当我添加或删除列时,表会根据需要进行调整以填充空间
现在问题是当一列高于其他列时.我希望所有列都能拉伸以匹配最高柱的高度.
查看Chrome检查器时,我可以看到表格单元格完全填满了高度:
现在我需要的是这个表格单元格的子节点填充高度(在上面提供的小提琴中,这将是.price-wrapper
- 它需要填充.price-list li
)
我试过了两个:
height: 100%
position: absolute; top:0; bottom:0; left:0; right:0;
前者由于某种原因没有做任何事情,后者倒塌.price-list
到0像素高(因为只有高度的孩子绝对定位,因此从流程中移除)
如果我能够.price-wrapper
正确地达到100%的高度,.price-list li
那么我可以使用display:table
并将display:table-row
"立即购买"按钮推到底部并获得所需的外观: