Zunächst möchte ich erstmal allen Beteiligten ein großes Lob für Ihre Hilfe in meinen Threads aussprechen.
Mitlerweile bin ich auch ein ganzes Stück weitergekommen. Nun habe ich aber noch zwei letzte Fragen:
So sieht meine Tabelle aus. Die Spalte Menge ist editierbar.
Der Quellcode:
Fragen:
Ich bekomme die Daten aus einem String[][]. Wenn ich die Menge ändere, soll sich auch der Gesamtpreis sowie das String[][] ändern.
Die Menge kann ich wie gesagt editieren, nur wie ändere ich dann automatisch eine 2te Zelle ? Diese Änderung soll danach ins String[][] geschrieben werden.
Kann mir jemand nen Tipp dazu geben ?
Mitlerweile bin ich auch ein ganzes Stück weitergekommen. Nun habe ich aber noch zwei letzte Fragen:
So sieht meine Tabelle aus. Die Spalte Menge ist editierbar.
Der Quellcode:
Code:
public class TabNeuesAngebot extends JFrame {
private boolean DEBUG = false;
private static final long serialVersionUID = -7683083478209677885L;
static JPanel tabelle;
public TabNeuesAngebot() throws Exception {
super("ausgewählte Artikel");
JTable table = new JTable(new MyTableModel());
tabelle = new JPanel(new FlowLayout());
tabelle.add(new JScrollPane(table), BorderLayout.CENTER);
Container cp = getContentPane();
cp.add(tabelle);
setSize(800, 350);
setVisible(true);
}
class MyTableModel extends AbstractTableModel {
private String[] columnNames = { "Position", "ArtikelNr",
"Bezeichnung", "Einheit", "Menge", "Einzelpreis", "Gesamtpreis" };
private Object[][] data = UtilAngebot.getAlleAngbtPosTmpTab();
public boolean isCellEditable(int row, int col) {
if (col == 4) {
return true;
} else {
return false;
}
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public int getRowCount() {
return data.length;
}
public String getColumnName(int col){
return columnNames[col];
}
@Override
public Object getValueAt(int row, int col) {
return data[row][col];
}
public void setValueAt(Object value, int row, int col) {
data[row][col] = value;
fireTableCellUpdated(row, col);
}
public void setValueAt(String 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);
}
public MyTableModel() throws Exception {
super();
// TODO Auto-generated constructor stub
}
}
}
Fragen:
Ich bekomme die Daten aus einem String[][]. Wenn ich die Menge ändere, soll sich auch der Gesamtpreis sowie das String[][] ändern.
Die Menge kann ich wie gesagt editieren, nur wie ändere ich dann automatisch eine 2te Zelle ? Diese Änderung soll danach ins String[][] geschrieben werden.
Kann mir jemand nen Tipp dazu geben ?