Hallo,
ich habe schon eine längere Zeit in google und auch hier nach einer Lösung für mein Problem gesucht, und würde mich sehr freuen, wenn hier mir eine/r weiterhelfen kann.=)
Und zwar habe ich 3 Textfelder und einen Button in einem JFrame. Der Button aber soll erst aktiviert werden, wenn in allen 3 Feldern eine Eingabe erfolgt ist. Der Button ist zu Anfang auch deaktiviert, wird aber schon nach einer Eingabe in einem Textfeld wieder aktiviert.
Hier der Quellcode (Ich versuche nur die erforderlichen Teile raus zu extrahieren):
ich habe schon eine längere Zeit in google und auch hier nach einer Lösung für mein Problem gesucht, und würde mich sehr freuen, wenn hier mir eine/r weiterhelfen kann.=)
Und zwar habe ich 3 Textfelder und einen Button in einem JFrame. Der Button aber soll erst aktiviert werden, wenn in allen 3 Feldern eine Eingabe erfolgt ist. Der Button ist zu Anfang auch deaktiviert, wird aber schon nach einer Eingabe in einem Textfeld wieder aktiviert.
Hier der Quellcode (Ich versuche nur die erforderlichen Teile raus zu extrahieren):
Java:
package de.jonas.stromkostenrechner;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class NeuesGerätFenster extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
JTextField eingabename,
eingabeverbrauch,
eingabelaufzeit
;
JButton erzeugegerät;
//(weitere Initialisierungen hab ich rausgenommen)
NeuesGerätFenster (){
setTitle(überschriftt);
setSize(breiteFrame, höheFrame);
setLocationRelativeTo(null);
setVisible(true);
setResizable(false);
setLayout(null);
setAlwaysOnTop(false);
Color c = new Color (255, 255, 255);
getContentPane().setBackground(c);
eingabename = new JTextField();
eingabename.setBounds(xposENTextF, höhe1, allgemeineLänge, allgemeinehöhe);
eingabename.setText("");
eingabename.addActionListener(this);
eingabename.getDocument().addDocumentListener(new TextfeldListener());
add(eingabename);
eingabeverbrauch = new JTextField();
eingabeverbrauch.setBounds(xposEVTextF, höhe2, allgemeineLänge, allgemeinehöhe);
eingabeverbrauch.addActionListener(this);
eingabeverbrauch.getDocument().addDocumentListener(new TextfeldListener());
eingabeverbrauch.setText("");
add(eingabeverbrauch);
eingabelaufzeit = new JTextField();
eingabelaufzeit.setBounds(xposELTextF, höhe3, allgemeineLänge, allgemeinehöhe);
eingabelaufzeit.addActionListener(this);
eingabelaufzeit.getDocument().addDocumentListener(new TextfeldListener());
eingabelaufzeit.setText("");
add(eingabelaufzeit);
erzeugegerät = new JButton ("Gerät speichern");
erzeugegerät.setFont(fontbutton);
erzeugegerät.setBounds(xposEGButton, höhe4, längeButton, allgemeinehöhe);
erzeugegerät.addActionListener(this);
erzeugegerät.setEnabled(false);
add(erzeugegerät);
}
class TextfeldListener implements DocumentListener{
public void changedUpdate(DocumentEvent e) {
update();
}
public void insertUpdate(DocumentEvent e) {
update();
}
public void removeUpdate(DocumentEvent e) {
update();
}
public void update(){
String leer= "";
String TF1=eingabename.getText();
String TF2=eingabeverbrauch.getText();
String TF3=eingabelaufzeit.getText();
if((TF1 != leer) && (TF2 != leer) && (TF3 != leer)){
erzeugegerät.setEnabled(true);
}
else{
erzeugegerät.setEnabled(false);
}
}
}
}