Hey Leute,
seit gestern verzweifele ich an dieser Aufgabe:
Ich soll eine Tabelle erstellen, die die Daten speichert. Falls der Benutzer Änderungen an der Zeilenanzahl macht vegleichen, ob die Zeile schon vorher da war. wenn Ja, dann sollen die schon vorhandenen Daten einfach dort rein geschrieben werden. wenn Nein, dann soll einen neue Zeile erstellt werden.
Zum Hintergrund,
der User kann die Anzahl der Zeilen durch ein Textfeld verändern.
Hier mal der Code:
Sorry, dass er so unordentlich ist.
lg James
seit gestern verzweifele ich an dieser Aufgabe:
Ich soll eine Tabelle erstellen, die die Daten speichert. Falls der Benutzer Änderungen an der Zeilenanzahl macht vegleichen, ob die Zeile schon vorher da war. wenn Ja, dann sollen die schon vorhandenen Daten einfach dort rein geschrieben werden. wenn Nein, dann soll einen neue Zeile erstellt werden.
Zum Hintergrund,
der User kann die Anzahl der Zeilen durch ein Textfeld verändern.
Hier mal der Code:
Java:
import java.awt.BorderLayout;
public class Steuerfenster2 extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JTable table;
private int rowCount;
Object[][] data = new Object[][] {{null, null, null, null, null},};
String[] columnNames = new String[]{"posx", "posy", "radius", "color", "filled"};
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Steuerfenster2 frame = new Steuerfenster2();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Steuerfenster2() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 524, 360);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.NORTH);
JLabel lblAnzahl = new JLabel("Anzahl: ");
panel.add(lblAnzahl);
textField = new JTextField();
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
setRowCount(Integer.parseInt(textField.getText()));
setModel();
}
});
textField.setText("1");
panel.add(textField);
textField.setColumns(10);
JPanel panel_1 = new JPanel();
contentPane.add(panel_1, BorderLayout.SOUTH);
JButton btnKreiseMalen = new JButton("Kreise malen");
panel_1.add(btnKreiseMalen);
table = new JTable();
table.setFillsViewportHeight(true);
@SuppressWarnings("serial")
DefaultTableModel newmodel = new DefaultTableModel(data,columnNames)
{
@SuppressWarnings("rawtypes")
Class[] columnTypes = new Class[]
{
Integer.class, Integer.class, Integer.class, String.class, Boolean.class
};
@SuppressWarnings({ "rawtypes", "unchecked" })
public Class getColumnClass(int columnIndex)
{
return columnTypes[columnIndex];
}
};
table.setModel(newmodel);
contentPane.add(new JScrollPane(table));
}
private void setModel()
{
try { rowCount = Integer.parseInt(textField.getText()); }
catch (java.lang.NumberFormatException e) { rowCount = 1; }
String[] columnNames = new String[] {"posx", "posy", "radius", "color", "filled"};
System.out.println(table.getValueAt(0, 0));
// textField.setText(String.valueOf(rowCount));
checkRowCount(rowCount);
@SuppressWarnings("serial")
DefaultTableModel newmodel = new DefaultTableModel(
columnNames, rowCount) {
@SuppressWarnings("rawtypes")
Class[] columnTypes = new Class[] {
Integer.class, Integer.class, Integer.class, String.class, Boolean.class
};
@SuppressWarnings({ "rawtypes", "unchecked" })
public Class getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
};
table.setModel(newmodel);
System.out.println(table.getValueAt(0, 0));
}
private int checkRowCount(int i)
{
if(i <= 0 || i > 15)
{
textField.setText(String.valueOf(1));
return (rowCount = 1);
}
return rowCount;
}
private void setRowCount(int i)
{
i = rowCount;
}
private int getRowCount()
{
return rowCount;
}
}
Sorry, dass er so unordentlich ist.
lg James
Zuletzt bearbeitet: