gpt4 book ai didi

java - 如果最低行被编辑,则将空行插入 jtable

转载 作者:行者123 更新时间:2023-12-02 03:18:16 24 4
gpt4 key购买 nike

如果最低行被编辑,是否有办法始终插入空行?
我总是希望底部有一个空闲行,如果有人编辑最低行,应该自动插入一个新行。

我使用 AbstractTableModel:

public class NativeTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private ArrayList<Spieler> myObjects = null;
private String[] columnNames = { "Vorname", "Nachname", "Trikotnummer" };

public NativeTableModel() {
myObjects = new ArrayList<Spieler>(JNIResultSet.getMeineSpieler());
}

@Override
public int getRowCount() {
return myObjects.size();
}

@Override
public String getColumnName(int index) {
return columnNames[index];
}

@Override
public int getColumnCount() {
return columnNames.length;
}

@Override
public boolean isCellEditable(int row, int col) {
boolean retValue = false;
if (col >= 1) {
retValue = true;
}
return retValue;
}

@Override
public void setValueAt(Object value, int row, int col) {
switch (col) {
case 0:
if (value instanceof String) {
//
}
break;
case 1:
if (value instanceof Integer) {
//
}
break;
}
fireTableCellUpdated(row, col);
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Object value = "";
Spieler s = this.myObjects.get(rowIndex);
switch (columnIndex) {
case 0:
value = s.getVorname();
break;
case 1:
value = s.getNachname();
break;
case 2:
value = s.getTrikotnummer();
break;
}
return value;
}

}

如何检查最低行是否为空,如果为空则插入新行?

最佳答案

建议:

  • 更改表模型以使用 ArrayList 作为其数据核心,而不是不灵活的二维数组。
  • ArrayList 的通用类型应该是一个保存 JTable 的单行数据的类。
  • 它应该有一个空的默认状态,表示该行没有数据。
  • 当表模型方法中的数据发生更改时,请检查模型的最后一行,以查看此处列表中保存的对象是否是默认对象或保存数据。
  • 如果它包含数据,请将新对象添加到列表中并调用适当的 fireXxx 通知方法。
  • 在setValue中,您可以检查rowCount,并且可以将其与传递到方法中的行参数进行比较。如果它们匹配,则添加新行。但如果这样做,您必须小心循环引用,因为添加新行也可能会调用 setValue,因此您必须提供逻辑来防止堆栈溢出。再次强调,如果我们能与您合作SSCCE,我们可以提供更好的帮助。 .

关于java - 如果最低行被编辑,则将空行插入 jtable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40008220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com