Hallo
habe mir ein Programm geschrieben bzw bin dabei und möchte einen KeyListener hinzufügen das ich prüfen kann ob alle Felder ausgefüllt sind und dann den Button freischlaten kann. Ich habe es wie unten versucht doch leider bekomm ich da ne Fehlermeldung.
habe mir ein Programm geschrieben bzw bin dabei und möchte einen KeyListener hinzufügen das ich prüfen kann ob alle Felder ausgefüllt sind und dann den Button freischlaten kann. Ich habe es wie unten versucht doch leider bekomm ich da ne Fehlermeldung.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Vergleicher extends JFrame implements KeyListener{ // Hier ist der KeyListener nur der macht mir den Fehler
// Anfang Variablen
JTabbedPane jtp = new JTabbedPane();
JPanel pane1 = new JPanel();
JPanel datenpanel = new JPanel();
JPanel datenoben = new JPanel();
JTextField markefeld = new JTextField();
JTextField modellfeld= new JTextField();
JTextField kaufpreisfeld = new JTextField();
JTextField verbrauchfeld = new JTextField();
JTextField steuerfeld = new JTextField();
JTextField versicherungfeld = new JTextField();
JButton festesachen = new JButton("Feste Größen");
JButton hinzufügen = new JButton("Hinzufügen");
JPanel datenentfernen = new JPanel();
JComboBox auswahl = new JComboBox();
JButton löschen = new JButton("Löschen");
JPanel anzeige = new JPanel();
JTable datenzeigen = new JTable(0,6);
JPanel pane2 = new JPanel();
JPanel pane3 = new JPanel();
// Ende Variablen
public Vergleicher (String title) {
// Frame-Initialisierung
super (title);
addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent evt) {System.exit(0);}});
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setSize(d.width, (d.height)-30);
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
// Anfang Komponenten
datenpanel.setLayout(new BorderLayout());
datenoben.setBorder(BorderFactory.createTitledBorder("Eingaben"));
datenoben.setLayout(new GridLayout(7,3));
datenoben.add(new JLabel("Marke:"));
datenoben.add(markefeld);
datenoben.add(new JLabel("Modell:"));
datenoben.add(modellfeld);
datenoben.add(new JLabel("Kaufpreis (€):"));
datenoben.add(kaufpreisfeld);
datenoben.add(new JLabel("Verbrauch (L/100km):"));
datenoben.add(verbrauchfeld);
datenoben.add(new JLabel("Steuer (€/Jahr):"));
datenoben.add(steuerfeld);
datenoben.add(new JLabel("Versicherung (€/Jahr):"));
datenoben.add(versicherungfeld);
datenoben.add(festesachen);
festesachen.addActionListener (new ActionListener () {
public void actionPerformed (ActionEvent evt) {
festesachenActionPerformed (evt);}});
datenoben.add(hinzufügen);
hinzufügen.addActionListener (new ActionListener () {
public void actionPerformed (ActionEvent evt) {
hinzufügenActionPerformed (evt);}});
hinzufügen.setEnabled(false);
datenpanel.add(datenoben, BorderLayout.NORTH);
datenentfernen.setBorder(BorderFactory.createTitledBorder("Entfernen"));
datenentfernen.add(auswahl);
datenentfernen.add(löschen);
löschen.addActionListener (new ActionListener () {
public void actionPerformed (ActionEvent evt) {
löschenActionPerformed (evt);}});
datenpanel.add(datenentfernen, BorderLayout.SOUTH);
pane1.add(datenpanel);
anzeige.setBorder(BorderFactory.createTitledBorder("Daten"));
datenzeigen.setEnabled(false);
anzeige.add(new JScrollPane(datenzeigen));
pane1.add(anzeige);
jtp.addTab ("Daten", pane1);
pane2.setLayout(new BorderLayout());
pane2.add(new JScrollPane(new JTable(36,5)), BorderLayout.CENTER);
jtp.addTab ("Tabelle", pane2);
jtp.addTab ("Grafik", pane3);
getContentPane().add(jtp, BorderLayout.CENTER);
// Ende Komponenten
setVisible(true);
setExtendedState(MAXIMIZED_BOTH);
}
// Anfang Ereignisprozeduren
public void keyReleased(KeyEvent e){
if(markefeld.getText() != null){
hinzufügen.setEnabled(true);
}
}
public void prüfenActionPerformed (ActionEvent evt) {
}
public void festesachenActionPerformed (ActionEvent evt) {
int jop = JOptionPane.showConfirmDialog(this, "", "Feste Größen", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE);
}
public void hinzufügenActionPerformed (ActionEvent evt) {
auswahl.addItem(markefeld.getText()+" "+modellfeld.getText());
markefeld.setText("");
modellfeld.setText("");
kaufpreisfeld.setText("");
verbrauchfeld.setText("");
steuerfeld.setText("");
versicherungfeld.setText("");
datenzeigen.addRowSelectionInterval(2,1);
}
public void löschenActionPerformed (ActionEvent evt) {
auswahl.removeItem(auswahl.getSelectedItem());
}
// Ende Ereignisprozeduren
public static void main (String[] args) {
new Vergleicher("Vergleicher");
}
}