问:如何从我的 TableView 中打印特定行的特定字段?
Q: How to print a specific field of a specific row from my TableView?
我有以下问题:我在可观察列表中读取了数据库项目。现在我想在我的表格视图右侧的几个文本字段中显示 selected 行中的一些项目。
我用下面的代码得到了 observable-line-index,但我想 select 该行的另一列。
AnalysemethodenTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Object>() {
public void changed(ObservableValue<?> observable, Object oldvalue, Object newValue) {
index.set(analysemethodendata.indexOf(newValue));
databaseIndex = (analysemethodendata.indexOf(newValue) + 1);
System.out.println("Index:\t" + databaseIndex);
}
});
我找到了以下代码:Click
但是我不明白这一点。这有点像写一个新列表,并在这个新列表中放置一个可观察列表的项目的副本。
我想,如果我有代码行的索引,我也可以 select 可观察列表行中的其他项目(我认为 "x,y"数组)
如果我将它转换为字符串,输出只是机器代码。
希望我能在您的帮助下理解解决方案!
编辑:我插入了以下代码:
System.out.println(analysemethodendata.get(databaseIndex).toString());
但我的输出中只得到机器码:
table.analysemethoden_table@63c0d5b7
编辑 2:
Table-控制器代码:
package table;
import javafx.beans.property.SimpleFloatProperty;
import javafx.beans.property.SimpleStringProperty;
public class analysemethoden_table {
private final SimpleStringProperty rAmnorm;
private final SimpleStringProperty rMethverantw;
private final SimpleFloatProperty rBestimmungsgrenze;
private final SimpleFloatProperty rNachweisgrenze;
public analysemethoden_table (String sAmnorm, String sMethoverantw, Float sBestimmungsgrenze, Float sNachweisgrenze) {
this.rAmnorm = new SimpleStringProperty(sAmnorm);
this.rMethverantw = new SimpleStringProperty(sMethoverantw);
this.rBestimmungsgrenze = new SimpleFloatProperty(sBestimmungsgrenze);
this.rNachweisgrenze = new SimpleFloatProperty(sNachweisgrenze);
}
// Getter- und Setter-Methoden
/** rAmnorm **/
public String getRAmnorm() {
return rAmnorm.get();
}
public void setRAmnorm(String set) {
rAmnorm.set(set);
}
/** rMethverantw **/
public String getRMethverantw() {
return rMethverantw.get();
}
public void setRMethverantw(String set) {
rMethverantw.set(set);
}
/** rBestimmungsgrenze **/
public Float getRBestimmungsgrenze() {
return rBestimmungsgrenze.get();
}
public void setRBestimmungsgrenze(Float set) {
rBestimmungsgrenze.set(set);
}
/** rNachweisgrenze **/
public Float getRNachweisgrenze() {
return rNachweisgrenze.get();
}
public void setRNachweisgrenze(Float set) {
rNachweisgrenze.set(set);
}
}
您需要使用
analysemethodendata.get(databaseIndex).getRAmnorm();
或任何其他 getter 方法代替 getRAmnorm()
以获得所需的输出。
databaseIndex
-> 行号
我有以下问题:我在可观察列表中读取了数据库项目。现在我想在我的表格视图右侧的几个文本字段中显示 selected 行中的一些项目。
我用下面的代码得到了 observable-line-index,但我想 select 该行的另一列。
AnalysemethodenTable.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Object>() {
public void changed(ObservableValue<?> observable, Object oldvalue, Object newValue) {
index.set(analysemethodendata.indexOf(newValue));
databaseIndex = (analysemethodendata.indexOf(newValue) + 1);
System.out.println("Index:\t" + databaseIndex);
}
});
我找到了以下代码:Click
但是我不明白这一点。这有点像写一个新列表,并在这个新列表中放置一个可观察列表的项目的副本。
我想,如果我有代码行的索引,我也可以 select 可观察列表行中的其他项目(我认为 "x,y"数组)
如果我将它转换为字符串,输出只是机器代码。
希望我能在您的帮助下理解解决方案!
编辑:我插入了以下代码:
System.out.println(analysemethodendata.get(databaseIndex).toString());
但我的输出中只得到机器码:
table.analysemethoden_table@63c0d5b7
编辑 2: Table-控制器代码:
package table;
import javafx.beans.property.SimpleFloatProperty;
import javafx.beans.property.SimpleStringProperty;
public class analysemethoden_table {
private final SimpleStringProperty rAmnorm;
private final SimpleStringProperty rMethverantw;
private final SimpleFloatProperty rBestimmungsgrenze;
private final SimpleFloatProperty rNachweisgrenze;
public analysemethoden_table (String sAmnorm, String sMethoverantw, Float sBestimmungsgrenze, Float sNachweisgrenze) {
this.rAmnorm = new SimpleStringProperty(sAmnorm);
this.rMethverantw = new SimpleStringProperty(sMethoverantw);
this.rBestimmungsgrenze = new SimpleFloatProperty(sBestimmungsgrenze);
this.rNachweisgrenze = new SimpleFloatProperty(sNachweisgrenze);
}
// Getter- und Setter-Methoden
/** rAmnorm **/
public String getRAmnorm() {
return rAmnorm.get();
}
public void setRAmnorm(String set) {
rAmnorm.set(set);
}
/** rMethverantw **/
public String getRMethverantw() {
return rMethverantw.get();
}
public void setRMethverantw(String set) {
rMethverantw.set(set);
}
/** rBestimmungsgrenze **/
public Float getRBestimmungsgrenze() {
return rBestimmungsgrenze.get();
}
public void setRBestimmungsgrenze(Float set) {
rBestimmungsgrenze.set(set);
}
/** rNachweisgrenze **/
public Float getRNachweisgrenze() {
return rNachweisgrenze.get();
}
public void setRNachweisgrenze(Float set) {
rNachweisgrenze.set(set);
}
}
您需要使用
analysemethodendata.get(databaseIndex).getRAmnorm();
或任何其他 getter 方法代替 getRAmnorm()
以获得所需的输出。
databaseIndex
-> 行号