Hallo Leute,
ich würde gerne bei meinem Programm eine Tabelle befüllen, die ich dann anteilig berechne.
Durch "hinzufügen", möchte ich meine Tabelle mit den Daten füttern. In der Spalte 1 befinden sich die Namen, in der Spalte 2 die Zahlen. Die Spalte 2 soll dann anteilig berechnet werden, mit dem Wert von "berechne".
Zum Teil funktioniert es, aber irgendwo ist der Fehler
Im Bildchen sieht man besser was ich meine
Kann mir jemand helfen?
Vielen Danke, der Mutz
P.S.: Falls es das Thema schon gibt, bitte ich das zu entschuldigen, hab es dann nicht gefunden.
ich würde gerne bei meinem Programm eine Tabelle befüllen, die ich dann anteilig berechne.
Durch "hinzufügen", möchte ich meine Tabelle mit den Daten füttern. In der Spalte 1 befinden sich die Namen, in der Spalte 2 die Zahlen. Die Spalte 2 soll dann anteilig berechnet werden, mit dem Wert von "berechne".
Zum Teil funktioniert es, aber irgendwo ist der Fehler
Im Bildchen sieht man besser was ich meine
Java:
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class table2 {
public static void main(String[] args){
// create JFrame and JTable
JFrame frame = new JFrame();
JTable table = new JTable();
// create a table model and set a Column Identifiers to this model
Object[] columns = {"Name","Kosten","Anteil"};
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(columns);
// set the model to the table
table.setModel(model);
// Change A JTable Background Color, Font Size, Font Color, Row Height
table.setBackground(Color.LIGHT_GRAY);
table.setForeground(Color.black);
Font font = new Font("",1,22);
table.setFont(font);
table.setRowHeight(30);
// create JTextFields
JTextField grundtf = new JTextField();
JTextField kostentf = new JTextField();
JTextField datumtf = new JTextField();
JTextField grtf = new JTextField();
JTextField anteilgrtf = new JTextField();
JTextField test = new JTextField();
// create JButtons
JButton btnAdd = new JButton("Hinzufügen");
JButton berechne = new JButton("Berechne");
//links
grundtf.setBounds(20, 220, 100, 25);
kostentf.setBounds(20, 250, 100, 25);
//rechts
grtf.setBounds(280, 220, 100, 25);
anteilgrtf.setBounds(280, 250, 100, 25);
datumtf.setBounds(410, 310, 100, 25);
test.setBounds(540, 310, 100, 25);
btnAdd.setBounds(150, 220, 100, 25);
berechne.setBounds(410, 220, 100, 25);
// create JScrollPane
JScrollPane pane = new JScrollPane(table);
pane.setBounds(0, 0, 880, 200);
frame.setLayout(null);
frame.add(pane);
// add JTextFields to the jframe
frame.add(grundtf);
frame.add(kostentf);
frame.add(datumtf);
frame.add(grtf);
frame.add(anteilgrtf);
frame.add(test);
// add JButtons to the jframe
frame.add(btnAdd);
frame.add(berechne);
// create an array of objects to set the row data
Object[] row = new Object[3];
// button add row
btnAdd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
row[0] = grundtf.getText();
row[1] = kostentf.getText();
// add row to the model
model.addRow(row);
}
});
[COLOR=#ff0000] //berechne button
berechne.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
for (int clmCnt1 = model.getColumnCount(),rowCnt1 = model.getRowCount(), k = 0; k < rowCnt1; k++) {
for (int l = 0; l < clmCnt1; l++) {
Double anteil = Double.parseDouble(anteilgrtf.getText());
Double gro = Double.parseDouble(grtf.getText());
Object obj = model.getValueAt(k, 1);
Double wovo = Double.parseDouble(obj.toString());
Double an = anteil/gro;
an = Math.round(100*an)/100.0;
String str1 = String.valueOf(an);
datumtf.setText(str1);
Double an1 = wovo*an;
an1 = Math.round(100*an1)/100.0;
String str = String.valueOf(an1);
row[2] = str;
// test.setText(str);
model.addRow(row);
}
} [/COLOR]
}
});
frame.setSize(900,400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Kann mir jemand helfen?
Vielen Danke, der Mutz
P.S.: Falls es das Thema schon gibt, bitte ich das zu entschuldigen, hab es dann nicht gefunden.