Hallo Leute,
ich habe ein kleines Tabellenprogramm erstellt. Testweise um zu prüfen, ob es überhaupt funktioniert.
Das Nachrichtenfeld wird auch jeweils beim Drücken des Jeweiligen Buttons angepasst, aber im Hauptfeld, wo der Datensatz zu sehen sein soll, passiert nichts.
Wo liegt hier der Fehler, dass die Daten nicht angezeigt werden?
Hier der Code:
Für hilfreiche Tipps oder sogar eine Lösung wäre ich dankbar.
LG
ich habe ein kleines Tabellenprogramm erstellt. Testweise um zu prüfen, ob es überhaupt funktioniert.
Das Nachrichtenfeld wird auch jeweils beim Drücken des Jeweiligen Buttons angepasst, aber im Hauptfeld, wo der Datensatz zu sehen sein soll, passiert nichts.
Wo liegt hier der Fehler, dass die Daten nicht angezeigt werden?
Hier der Code:
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import net.miginfocom.swing.MigLayout;
import javax.swing.JTable;
import java.awt.Dimension;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Test extends JFrame {
private JPanel contentPane;
private JTable table;
private JTextField eingBez;
private JTextField eingPreis;
/**
* Launch the application.
*/
public static void main(String[] args) {
new Test();
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test frame = new Test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Test() {
setSize(500, 800);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new MigLayout("", "[][][][][][grow][][][][grow]", "[][][][][grow]"));
JLabel bezeichnung = new JLabel("Bezeichnung");
contentPane.add(bezeichnung, "cell 0 0,alignx trailing");
JLabel nachricht = new JLabel("Nachricht");
eingBez = new JTextField();
contentPane.add(eingBez, "cell 1 0,growx");
eingBez.setColumns(10);
JLabel kategorie = new JLabel("Kategorie");
contentPane.add(kategorie, "cell 0 1,alignx trailing");
String objekte[]={"Lebensmittel","Möbel","Elektronik","Textilien","Kfz","Sonstiges"};
JComboBox auswahl = new JComboBox(objekte);
auswahl.setName("Auswahl");
contentPane.add(auswahl, "cell 1 1,growx");
JLabel preis = new JLabel("Preis");
contentPane.add(preis, "cell 0 2,alignx trailing");
eingPreis = new JTextField();
contentPane.add(eingPreis, "cell 1 2,growx");
eingPreis.setColumns(10);
JButton hinzufuegen = new JButton("Hinzuf\u00FCgen");
hinzufuegen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
DefaultTableModel model=(DefaultTableModel)table.getModel();
if(!eingBez.getText().trim().equals("")||!eingBez.getText().trim().equals(" "))
{
model.addRow(new Object[]{eingBez.getText(),auswahl.getSelectedItem().toString(),eingPreis.getText()});
}
if(!eingBez.getText().equals("")||!eingBez.getText().equals(" "))
{
model.addRow(new Object[]{eingBez.getText(),auswahl.getSelectedItem().toString(),eingPreis.getText()});
}
else
{
nachricht.setText("Sie müssen Eingaben tätigen x1");
}
}
});
contentPane.add(hinzufuegen, "cell 0 3");
JButton loeschen = new JButton("L\u00F6schen");
loeschen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
DefaultTableModel model=(DefaultTableModel)table.getModel();
if(table.getSelectedRow()==-1)
{
if(table.getRowCount()==0)
{
nachricht.setText("Die Tabelle ist leer");
}else
{
nachricht.setText("Sie müssen ein Produkt auswählen x2");
}
}else
{
model.removeRow(table.getSelectedRow());
}
}
});
contentPane.add(loeschen, "cell 1 3");
JButton aktualisieren = new JButton("Aktualisieren");
aktualisieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
DefaultTableModel model=(DefaultTableModel)table.getModel();
if(table.getSelectedRow()==-1)
{
if(table.getRowCount()==0)
{
nachricht.setText("Die Tabelle ist leer");
}else
{
nachricht.setText("Sie müssen ein Produkt auswählen x3");
}
}else
{
model.setValueAt(eingBez.getText(), table.getSelectedRow(), 0);
model.setValueAt(auswahl.getSelectedItem().toString(), table.getSelectedRow(), 1);
model.setValueAt(eingPreis.getText(), table.getSelectedRow(), 2);
}
}
});
contentPane.add(aktualisieren, "cell 3 3");
contentPane.add(nachricht, "cell 0 4");
table = new JTable();
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
DefaultTableModel model=(DefaultTableModel)table.getModel();
eingBez.setText(model.getValueAt(table.getSelectedRow(), 0).toString());
auswahl.setSelectedItem(model.getValueAt(table.getSelectedRow(), 1).toString());
eingPreis.setText(model.getValueAt(table.getSelectedRow(),2).toString());
}
});
table.setName("Tabelle");
table.setPreferredSize(new Dimension(400, 100));
contentPane.add(table, "cell 1 4,grow");
setVisible(true);
}
}
Für hilfreiche Tipps oder sogar eine Lösung wäre ich dankbar.
LG