gpt4 book ai didi

java - 如何在Jtable中动态添加列名称?

转载 作者:行者123 更新时间:2023-12-01 14:21:23 26 4
gpt4 key购买 nike

我在我的项目中使用 Jtable,当按下 Tab 键时,会添加新列,但该列的名称不存在。它在那个地方显示一个空白我希望列名应该是 excel 格式,即。像excel列名应该是A,B,C等等。那我应该检查什么。

private void datatypetableKeyPressed(java.awt.event.KeyEvent evt) {                                         

if (evt.getKeyCode() == KeyEvent.VK_TAB) {
addColumn();
}
}

private void addColumn() {
DefaultTableModel model = (DefaultTableModel) datatypetable.getModel();
JTableHeader th = datatypetable.getTableHeader();
TableColumnModel tcm = th.getColumnModel();
TableColumn tc = tcm.getColumn(0);

if (model != null) {
Vector v = new Vector(1);
for (int j = 0; j < datatypetable.getRowCount(); j++) {
tc.setHeaderValue("???");
v.add("");


}
model.addColumn(v);
th.repaint();
}
}

这是我向 jtable 添加新列的代码。

最佳答案

我已经这样做了并且它的工作......希望我的回答可以帮助任何人......

private void datatypetableKeyPressed(java.awt.event.KeyEvent evt) {                                         
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
int col = datatypetable.getSelectedColumn();
int row = datatypetable.getSelectedRow();
int colCount = datatypetable.getColumnCount();
int rowCount = datatypetable.getRowCount();
col++;
if (col >= colCount) {
col = 0;
row++;
}
if (row >= rowCount) {
row = 0;
}
// datatypetable.getSelectionModel().setSelectionInterval(row, row);
// datatypetable.getColumnModel().getSelectionModel().setSelectionInterval(col, col);
// datatypetable.editCellAt(row, col);
if (row == rowCount - 1) {
addRow();
datatypetable.scrollRectToVisible(datatypetable.getCellRect(rowCount, 0, true));
}
}

if (evt.getKeyCode() == KeyEvent.VK_TAB) {
int col = datatypetable.getSelectedColumn();
int row = datatypetable.getSelectedRow();
int colCount = datatypetable.getColumnCount();
int rowCount = datatypetable.getRowCount();
col++;
if (col >= colCount) {
col = 0;
row++;
}
if (row >= rowCount) {
row = 0;
}
// datatypetable.getSelectionModel().setSelectionInterval(row, row);
// datatypetable.getColumnModel().getSelectionModel().setSelectionInterval(col, col);
// datatypetable.editCellAt(row, col);
if (col == colCount - 1) {
addColumn();
int selectedRow = 0;
datatypetable.editCellAt(selectedRow, 0);
datatypetable.setSurrendersFocusOnKeystroke(true);
datatypetable.getEditorComponent().requestFocus();
datatypetable.scrollRectToVisible(datatypetable.getCellRect(colCount, 0, true));
}
}

}


private void addRow() {
DefaultTableModel model = (DefaultTableModel) datatypetable.getModel();

if (model != null) {
Vector v = new Vector(1);
// for (int j = 0; j <= datatypetable.getColumnCount(); j++) {
// v.add("");
// }
v.add("");
model.addRow(v);
}
}

private void addColumn() {
DefaultTableModel model = (DefaultTableModel) datatypetable.getModel();

if (model != null) {
Vector v = new Vector(1);
// for (int j = 0; j < datatypetable.getRowCount(); j++) {
// v.add("");
// }
v.add("");
model.addColumn(Character.toString((char) ('A' + datatypetable.getColumnCount())), v);
}
}

关于java - 如何在Jtable中动态添加列名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51703890/

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