Click here to view my table有没有最简单的方法在不使用cellfactory函数的情况下使用表索引值在javafx中设置tableview单元格背景颜色。我看起来像这样简单的单行代码
int rowIndex=0;
int colIndex=1;
setStyle("-fx-background-color: red;",(rowIndex,colIndex));
我知道使用表索引获取单元格数据的简单代码是
String a=personTable.getColumns().get(0).getCellObservableValue(1).getValue().toString();
System.out.println("value"+a)
Controller.java
public class FXMLDocumentController implements Initializable{
@FXML // fx:id="fruitCombo"
private ComboBox<String> yearCombo;
@FXML
private TableView<SoccerTeam> personTable;
@FXML
private TableColumn<SoccerTeam, String> monthname;
@FXML
private TableColumn<SoccerTeam, String> d1;
@FXML
private TableColumn<SoccerTeam, String> d2;
@FXML
private TableColumn<SoccerTeam, String> d3;
@FXML
private TableColumn<SoccerTeam, String> d4;
@FXML
private TableColumn<SoccerTeam, String> d5;
@FXML
private TableColumn<SoccerTeam, String> d6;
@FXML
private TableColumn<SoccerTeam, String> d7;
@FXML
private TableColumn<SoccerTeam, String> d8;
@FXML
private TableColumn<SoccerTeam, String> d9;
@FXML
private TableColumn<SoccerTeam, String> d10;
@FXML
private TableColumn<SoccerTeam, String> d11;
@FXML
private TableColumn<SoccerTeam, String> d12;
@FXML
private TableColumn<SoccerTeam, String> d13;
@FXML
private TableColumn<SoccerTeam, String> d14;
@FXML
private TableColumn<SoccerTeam, String> d15;
@FXML
private TableColumn<SoccerTeam, String> d16;
@FXML
private TableColumn<SoccerTeam, String> d17;
@FXML
private TableColumn<SoccerTeam, String> d18;
@FXML
private TableColumn<SoccerTeam, String> d19;
@FXML
private TableColumn<SoccerTeam, String> d20;
@FXML
private TableColumn<SoccerTeam, String> d21;
@FXML
private TableColumn<SoccerTeam, String> d22;
@FXML
private TableColumn<SoccerTeam, String> d23;
@FXML
private TableColumn<SoccerTeam, String> d24;
@FXML
private TableColumn<SoccerTeam, String> d25;
@FXML
private TableColumn<SoccerTeam, String> d26;
@FXML
private TableColumn<SoccerTeam, String> d27;
@FXML
private TableColumn<SoccerTeam, String> d28;
@FXML
private TableColumn<SoccerTeam, String> d29;
@FXML
private TableColumn<SoccerTeam, String> d30;
@FXML
private TableColumn<SoccerTeam, String> d31;
@FXML
private TableColumn<SoccerTeam, String> d32;
@FXML
private TableColumn<SoccerTeam, String> d33;
@FXML
private TableColumn<SoccerTeam, String> d34;
@FXML
private TableColumn<SoccerTeam, String> d35;
@FXML
private TableColumn<SoccerTeam, String> d36;
@FXML
private TableColumn<SoccerTeam, String> d37;
@FXML
private TableColumn<SoccerTeam, String> d[];
final ObservableList<SoccerTeam> teams = FXCollections.observableArrayList();
@Override
public void initialize(URL url, ResourceBundle rb) {
//To change body of generated methods, choose Tools | Templates.
//final TableView<SoccerTeam> teamTable = new TableView<>();
monthname.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("monthname"));
d1.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d1"));
d2.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d2"));
d3.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d3"));
d4.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d4"));
d5.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d5"));
d6.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d6"));
d7.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d7"));
d8.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d8"));
d9.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d9"));
d10.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d10"));
d11.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d11"));
d12.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d12"));
d13.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d13"));
d14.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d14"));
d15.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d15"));
d16.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d16"));
d17.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d17"));
d18.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d18"));
d19.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d19"));
d20.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d20"));
d21.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d21"));
d22.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d22"));
d23.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d23"));
d24.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d24"));
d25.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d25"));
d26.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d26"));
d27.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d27"));
d28.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d28"));
d29.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d29"));
d30.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d30"));
d31.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d31"));
d32.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d32"));
d33.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d33"));
d34.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d34"));
d35.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d35"));
d36.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d36"));
d37.setCellValueFactory(new PropertyValueFactory<SoccerTeam, String>("d37"));
yearCombo.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> selected, String year,String newyear) {
teams.clear();
addjanuvary(newyear);
addfebruvary(newyear);
}
});
personTable.setItems(teams);
;
}
void addjanuvary(String newyear) {
Calendar day= new GregorianCalendar(Integer.parseInt(newyear), Calendar.JANUARY, 1);
int dayOfWeek = day.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
switch(dayOfWeek)
{
case 1:
teams.add(new SoccerTeam("JANUVARY", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "30","31", "", "", "", "", "", ""));
break;
case 2:
teams.add(new SoccerTeam("JANUVARY", "", "1", "2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "30","31", "", "", "", "", ""));
break;
case 3:
teams.add(new SoccerTeam("JANUVARY", "", "", "1","2","3", "4", "5", "6", "7", "8", "9", "10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "30","31","","","",""));
break;
case 4:
teams.add(new SoccerTeam("JANUVARY", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "30","31", "", "", ""));
break;
case 5:
teams.add(new SoccerTeam("JANUVARY", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "30","31", "",""));
break;
case 6:
teams.add(new SoccerTeam("JANUVARY", "", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "30","31",""));
break;
case 7:
teams.add(new SoccerTeam("JANUVARY", "", "", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "30","31"));
break;
default:
System.out.println("no");
break;
}
}
private void addfebruvary(String newyear) {
GregorianCalendar cal = new GregorianCalendar();
if(cal.isLeapYear(Integer.parseInt(newyear)))
{
System.out.println("case1");
System.out.print("Given year is leap year.");
Calendar day= new GregorianCalendar(Integer.parseInt(newyear), Calendar.FEBRUARY, 1);
int dayOfWeek = day.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
switch(dayOfWeek)
{
case 1:
teams.add(new SoccerTeam("FEBRUVARY", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "","", "", "", "", "", "", ""));
break;
case 2:
teams.add(new SoccerTeam("FEBRUVARY", "", "1", "2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "", "", "", "","", "", ""));
break;
case 3:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "1","2","3", "4", "5", "6", "7", "8", "9", "10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "", "", "", "", "",""));
break;
case 4:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "","", "", "", ""));
break;
case 5:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "","", "", ""));
break;
case 6:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "", "", ""));
break;
case 7:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "29", "", ""));
break;
default:
System.out.println("no");
break;
}
}
else
{
System.out.print("Given year is not leap year.");
Calendar day= new GregorianCalendar(Integer.parseInt(newyear), Calendar.FEBRUARY, 1);
int dayOfWeek = day.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
switch(dayOfWeek)
{
case 1:
teams.add(new SoccerTeam("FEBRUVARY", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "", "","", "", "", "", "", "", ""));
break;
case 2:
teams.add(new SoccerTeam("FEBRUVARY", "", "1", "2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "", "", "", "", "","", "", ""));
break;
case 3:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "1","2","3", "4", "5", "6", "7", "8", "9", "10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "", "", "", "", "", "",""));
break;
case 4:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "", "","", "", "", ""));
break;
case 5:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "", "","", "", ""));
break;
case 6:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "", "", "", ""));
break;
case 7:
teams.add(new SoccerTeam("FEBRUVARY", "", "", "", "", "", "", "1","2","3", "4", "5", "6", "7", "8", "9","10","11", "12", "13", "14", "15", "16", "17", "18", "19", "20","21", "22", "23", "24", "25", "26", "27", "28", "", "", ""));
break;
default:
System.out.println("no");
break;
}
}
}
}
SoccerTeam.java
public class SoccerTeam
{
private final SimpleStringProperty monthname;
private final SimpleStringProperty d1;
private final SimpleStringProperty d2;
private final SimpleStringProperty d3;
private final SimpleStringProperty d4;
private final SimpleStringProperty d5;
private final SimpleStringProperty d6;
private final SimpleStringProperty d7;
private final SimpleStringProperty d8;
private final SimpleStringProperty d9;
private final SimpleStringProperty d10;
private final SimpleStringProperty d11;
private final SimpleStringProperty d12;
private final SimpleStringProperty d13;
private final SimpleStringProperty d14;
private final SimpleStringProperty d15;
private final SimpleStringProperty d16;
private final SimpleStringProperty d17;
private final SimpleStringProperty d18;
private final SimpleStringProperty d19;
private final SimpleStringProperty d20;
private final SimpleStringProperty d21;
private final SimpleStringProperty d22;
private final SimpleStringProperty d23;
private final SimpleStringProperty d24;
private final SimpleStringProperty d25;
private final SimpleStringProperty d26;
private final SimpleStringProperty d27;
private final SimpleStringProperty d28;
private final SimpleStringProperty d29;
private final SimpleStringProperty d30;
private final SimpleStringProperty d31;
private final SimpleStringProperty d32;
private final SimpleStringProperty d33;
private final SimpleStringProperty d34;
private final SimpleStringProperty d35;
private final SimpleStringProperty d36;
private final SimpleStringProperty d37;
SoccerTeam(String monthname, String d1,String d2,String d3,String d4,String d5,String d6,String d7,String d8,String d9,String d10,
String d11,String d12,String d13,String d14,String d15,String d16,String d17,String d18,String d19,String d20,
String d21,String d22,String d23,String d24,String d25,String d26,String d27,String d28,String d29,String d30,
String d31,String d32,String d33,String d34,String d35,String d36,String d37) {
this.monthname = new SimpleStringProperty(monthname);
this.d1 = new SimpleStringProperty(d1);
this.d2 = new SimpleStringProperty(d2);
this.d3 = new SimpleStringProperty(d3);
this.d4 = new SimpleStringProperty(d4);
this.d5 = new SimpleStringProperty(d5);
this.d6 = new SimpleStringProperty(d6);
this.d7 = new SimpleStringProperty(d7);
this.d8 = new SimpleStringProperty(d8);
this.d9 = new SimpleStringProperty(d9);
this.d10 = new SimpleStringProperty(d10);
this.d11 = new SimpleStringProperty(d11);
this.d12 = new SimpleStringProperty(d12);
this.d13 = new SimpleStringProperty(d13);
this.d14 = new SimpleStringProperty(d14);
this.d15 = new SimpleStringProperty(d15);
this.d16 = new SimpleStringProperty(d16);
this.d17 = new SimpleStringProperty(d17);
this.d18 = new SimpleStringProperty(d18);
this.d19 = new SimpleStringProperty(d19);
this.d20 = new SimpleStringProperty(d20);
this.d21 = new SimpleStringProperty(d21);
this.d22 = new SimpleStringProperty(d22);
this.d23 = new SimpleStringProperty(d23);
this.d24 = new SimpleStringProperty(d24);
this.d25 = new SimpleStringProperty(d25);
this.d26 = new SimpleStringProperty(d26);
this.d27 = new SimpleStringProperty(d27);
this.d28 = new SimpleStringProperty(d28);
this.d29 = new SimpleStringProperty(d29);
this.d30 = new SimpleStringProperty(d30);
this.d31 = new SimpleStringProperty(d31);
this.d32 = new SimpleStringProperty(d32);
this.d33 = new SimpleStringProperty(d33);
this.d34 = new SimpleStringProperty(d34);
this.d35 = new SimpleStringProperty(d35);
this.d36 = new SimpleStringProperty(d36);
this.d37 = new SimpleStringProperty(d37);
}
public String getMonthname() {
return monthname.get();
}
public void setMonthname(String Monthname) {
monthname.set(Monthname);
}
public String getD1() {
return d1.get();
}
public void setD1(String D1) {
d1.set(D1);
}
public String getD2() {
return d2.get();
}
public void setD2(String D2) {
d2.set(D2);
}
public String getD3() {
return d3.get();
}
public void setD3(String D3) {
d3.set(D3);
}
public String getD4() {
return d4.get();
}
public void setD4(String D4) {
d4.set(D4);
}
public String getD5() {
return d5.get();
}
public void setD5(String D5) {
d5.set(D5);
}
public String getD6() {
return d6.get();
}
public void setD6(String D6) {
d6.set(D6);
}
public String getD7() {
return d7.get();
}
public void setD7(String D7) {
d7.set(D7);
}
public String getD8() {
return d8.get();
}
public void setD8(String D8) {
d8.set(D8);
}
public String getD9() {
return d9.get();
}
public void setD9(String D9) {
d9.set(D9);
}
public String getD10() {
return d10.get();
}
public void setD10(String D10) {
d10.set(D10);
}
public String getD11() {
return d11.get();
}
public void setD11(String D11) {
d11.set(D11);
}
public String getD12() {
return d12.get();
}
public void setD12(String D12) {
d12.set(D12);
}
public String getD13() {
return d13.get();
}
public void setD13(String D13) {
d13.set(D13);
}
public String getD14() {
return d14.get();
}
public void setD14(String D14) {
d14.set(D14);
}
public String getD15() {
return d15.get();
}
public void setD15(String D15) {
d15.set(D15);
}
public String getD16() {
return d16.get();
}
public void setD16(String D16) {
d16.set(D16);
}
public String getD17() {
return d17.get();
}
public void setD17(String D17) {
d17.set(D17);
}
public String getD18() {
return d18.get();
}
public void setD18(String D18) {
d18.set(D18);
}
public String getD19() {
return d19.get();
}
public void setD19(String D19) {
d19.set(D19);
}
public String getD20() {
return d20.get();
}
public void setD20(String D20) {
d20.set(D20);
}
public String getD21() {
return d21.get();
}
public void setD21(String D21) {
d21.set(D21);
}
public String getD22() {
return d22.get();
}
public void setD22(String D22) {
d22.set(D22);
}
public String getD23() {
return d23.get();
}
public void setD23(String D23) {
d23.set(D23);
}
public String getD24() {
return d24.get();
}
public void setD24(String D24) {
d24.set(D24);
}
public String getD25() {
return d25.get();
}
public void setD25(String D25) {
d25.set(D25);
}
public String getD26() {
return d26.get();
}
public void setD26(String D26) {
d26.set(D26);
}
public String getD27() {
return d27.get();
}
public void setD27(String D27) {
d27.set(D27);
}
public String getD28() {
return d28.get();
}
public void setD28(String D28) {
d28.set(D28);
}
public String getD29() {
return d29.get();
}
public void setD29(String D29) {
d29.set(D29);
}
public String getD30() {
return d30.get();
}
public void setD30(String D30) {
d30.set(D30);
}
public String getD31() {
return d31.get();
}
public void setD31(String D31) {
d31.set(D31);
}
public String getD32() {
return d32.get();
}
public void setD32(String D32) {
d32.set(D32);
}
public String getD33() {
return d33.get();
}
public void setD33(String D33) {
d33.set(D33);
}
public String getD34() {
return d34.get();
}
public void setD34(String D34) {
d34.set(D34);
}
public String getD35() {
return d35.get();
}
public void setD35(String D35) {
d35.set(D35);
}
public String getD36() {
return d36.get();
}
public void setD36(String D36) {
d36.set(D36);
}
public String getD37() {
return d37.get();
}
public void setD37(String D37) {
d37.set(D37);
}
}
答案 0 :(得分:0)
你的代码非常糟糕,尝试用它做点什么。关于你的问题:
// Custom rendering of the table cell.
YOUR_COLUMN.setCellFactory(column -> {
return new TableCell<SoccerTeam, String>() {
@Override
protected void updateItem(SoccerTeam item, boolean empty) {
super.updateItem(item, empty);
//Write your condition there,that is an example
if (item == null) {
setStyle("-fx-background-color: yellow");
}
}
};
});