【发布时间】:2014-01-22 14:17:18
【问题描述】:
我正在使用 Eclipse 做抽象表,我在 java swing 上做。怎么能 我通过按钮添加行?
我正在使用此表进行循环,其中用户输入存储在表中
fireTableCellUpdated(row, col); 以后会进入数据库。
我在我的挥杆中为桌子创建了一个类。
进入数据库的方法是ink到我的实体类(已经完成)。
用户在每个表格单元格中输入键(完成)后,表格将更新。
我已经在 jcombobox 中添加到表格中(已完成)。
class MyTableModel extends AbstractTableModel {
private String[] columnNames = {"Account", "Discount",
"Amount due",
"Memo"
};
private Object[][] data = {
{null, null, null, null}
};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
switch (c) {
default:
case 0:
return String.class;
case 1:
case 2:
return Double.class;
case 3:
return String.class;
}
//return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void setValueAt(Object value, int row, int col) {
// if (DEBUG) {
System.out.println("Setting value at " + row + "," + col
+ " to " + value
+ " (an instance of "
+ value.getClass() + ")");
//}
data[row][col] = value;
fireTableCellUpdated(row, col);
//if (DEBUG) {
System.out.println("New value of data:");
printDebugData();
//}
}
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i = 0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j = 0; j < numCols; j++) {
System.out.print(" " + data[i][j]);
}
System.out.println();
}
System.out.println("--------------------------");
}
}
final JTable AddBillTable = new JTable(new MyTableModel());
scrollPane.setViewportView(AddBillTable);
//for(int x = 0; x < 2; x++) insertRow();
TableColumn accountColumn = AddBillTable.getColumnModel().getColumn(0);
accountColumn.setCellEditor(new DefaultCellEditor(JAccountComboBox));
String date = (String) JBillCombo.getSelectedItem();
String supplier= (String) SupplierJcomboBox.getSelectedItem();
String dueDate=(String) JBillDueDate.getSelectedItem();
String account=(String)JAccountComboBox.getSelectedItem();
for (int i = 0 ; i < AddBillTable.getRowCount() ; i++) {
double discountAmount= 0.0;
double amount1 = 0.0;
String memo="";
for(int j=0; j<4; j++) {
account=(String)AddBillTable.getValueAt(i,0);
discountAmount=(double)AddBillTable.getValueAt(i,1);
amount1=(double)AddBillTable.getValueAt(i, 2);
memo=(String)AddBillTable.getValueAt(i,3);
}
Bill1 e1 = new Bill1(date,account,supplier,amount1,discountAmount,memo,dueDate);
//insert into database
e1.createBill();
有什么想法吗?
【问题讨论】:
-
urgently needed有两个原因 ---> 1. 尽快发布MCVE 以获得更好的帮助,2. 格式化您的代码,顺便编辑 3. 这种形式的问题和性质不是' t 对 SO 负责 -
-1 :如果您急需某些东西,您可能想花钱请人帮助您。 Stack Overflow 不是技术支持/私人导师。