Ich arbeite mit Eclipse nun seit 3 Tagen und habe mir bis jetz diesen einfachen Calculator zusammengebastelt:
Wie kann ich nun das leere txt_Vergleich's Feld anfangs "deaktivieren",sodass man auch ohne eine Vergleichszahl eingegeben zu haben ein Ergebnis kriegt? Sollte der Benutzer allerdings danach eine Zahl eingeben muss das Feld wieder "aktiviert" werden.
Java:
package rechnungen;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
@SuppressWarnings("serial")
public class Rechnung extends JFrame {
private JTextField txt_zahl1;
private JTextField txt_erg;
private JTextField txt_zahl2;
private JTextField txt_Vergleich;
private JTextField txt_Ausgabe;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Rechnung frame = new Rechnung();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Rechnung() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 619, 300);
getContentPane().setLayout(null);
txt_zahl1 = new JTextField();
txt_zahl1.setBounds(10, 107, 86, 20);
getContentPane().add(txt_zahl1);
txt_zahl1.setColumns(10);
txt_erg = new JTextField();
txt_erg.setEditable(false);
txt_erg.setBounds(474, 107, 119, 20);
getContentPane().add(txt_erg);
txt_erg.setColumns(10);
txt_zahl2 = new JTextField();
txt_zahl2.setBounds(154, 107, 86, 20);
getContentPane().add(txt_zahl2);
txt_zahl2.setColumns(10);
JButton btnaddi = new JButton("+");
btnaddi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
double Vergleichszahl , zahl1 , zahl2 , erg ;
Vergleichszahl = 0 ;
zahl1=0;
zahl2=0;
erg=0;
Vergleichszahl=Double.parseDouble(txt_Vergleich.getText());
zahl1=Double.parseDouble(txt_zahl1.getText());
zahl2=Double.parseDouble(txt_zahl2.getText());
erg=zahl1+zahl2;
txt_erg.setText(""+erg);
if(Vergleichszahl > erg)
{
txt_Ausgabe.setText("Die Zahl ist größer als: " +erg);
}
else if (Vergleichszahl < erg)
{
txt_Ausgabe.setText("Die Zahl ist kleiner als: " +erg);
}
else
{
txt_Ausgabe.setText("Die Zahl ist gleich: " +erg);
}
}
});
btnaddi.setBounds(337, 78, 89, 23);
getContentPane().add(btnaddi);
JLabel lblEingabe = new JLabel("Eingabe1");
lblEingabe.setBounds(29, 82, 67, 14);
getContentPane().add(lblEingabe);
JLabel lblEingabe_1 = new JLabel("Eingabe2");
lblEingabe_1.setBounds(164, 82, 67, 14);
getContentPane().add(lblEingabe_1);
JLabel lblErgebnis = new JLabel("Ergebnis");
lblErgebnis.setBounds(502, 82, 56, 14);
getContentPane().add(lblErgebnis);
JButton btnmulti = new JButton("*");
btnmulti.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double Vergleichszahl , zahl1 , zahl2 , erg ;
Vergleichszahl = 0 ;
zahl1=0;
zahl2=0;
erg=0;
Vergleichszahl=Double.parseDouble(txt_Vergleich.getText());
zahl1=Double.parseDouble(txt_zahl1.getText());
zahl2=Double.parseDouble(txt_zahl2.getText());
erg=zahl1*zahl2;
txt_erg.setText(""+erg);
if(Vergleichszahl > erg)
{
txt_Ausgabe.setText("Die Zahl ist größer als: " +erg);
}
else if (Vergleichszahl < erg)
{
txt_Ausgabe.setText("Die Zahl ist kleiner als: " +erg);
}
else
{
txt_Ausgabe.setText("Die Zahl ist gleich: " +erg);
}
}
});
btnmulti.setBounds(337, 127, 89, 23);
getContentPane().add(btnmulti);
JButton btndivi = new JButton(":");
btndivi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
double Vergleichszahl , zahl1 , zahl2 , erg ;
Vergleichszahl = 0 ;
zahl1=0;
zahl2=0;
erg=0;
Vergleichszahl=Double.parseDouble(txt_Vergleich.getText());
zahl1=Double.parseDouble(txt_zahl1.getText());
zahl2=Double.parseDouble(txt_zahl2.getText());
erg=zahl1/zahl2;
txt_erg.setText(""+erg);
if(Vergleichszahl > erg)
{
txt_Ausgabe.setText("Die Zahl ist größer als: " +erg);
}
else if (Vergleichszahl < erg)
{
txt_Ausgabe.setText("Die Zahl ist kleiner als: " +erg);
}
else
{
txt_Ausgabe.setText("Die Zahl ist gleich: " +erg);
}
}
});
btndivi.setBounds(337, 164, 89, 23);
getContentPane().add(btndivi);
JButton btnsub = new JButton("-");
btnsub.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double Vergleichszahl , zahl1 , zahl2 , erg ;
Vergleichszahl = 0 ;
zahl1=0;
zahl2=0;
erg=0;
Vergleichszahl=Double.parseDouble(txt_Vergleich.getText());
zahl1=Double.parseDouble(txt_zahl1.getText());
zahl2=Double.parseDouble(txt_zahl2.getText());
erg=zahl1-zahl2;
txt_erg.setText(""+erg);
if(Vergleichszahl > erg)
{
txt_Ausgabe.setText("Die Zahl ist größer als: " +erg);
}
else if (Vergleichszahl < erg)
{
txt_Ausgabe.setText("Die Zahl ist kleiner als: " +erg);
}
else
{
txt_Ausgabe.setText("Die Zahl ist gleich: " +erg);
}
}
});
btnsub.setBounds(337, 44, 89, 23);
getContentPane().add(btnsub);
txt_Vergleich = new JTextField();
txt_Vergleich.setBounds(10, 198, 144, 20);
getContentPane().add(txt_Vergleich);
txt_Vergleich.setColumns(10);
txt_Ausgabe = new JTextField();
txt_Ausgabe.setEditable(false);
txt_Ausgabe.setBounds(347, 198, 234, 20);
getContentPane().add(txt_Ausgabe);
txt_Ausgabe.setColumns(10);
JLabel lblVergleichszahl = new JLabel("Vergleichszahl");
lblVergleichszahl.setBounds(40, 173, 99, 14);
getContentPane().add(lblVergleichszahl);
//double Vergleichszahl , zahl1 , zahl2 , erg ;
//Vergleichszahl = 0 ;
//Vergleichszahl=Double.parseDouble(txt_Vergleich.getText());
}
}
Wie kann ich nun das leere txt_Vergleich's Feld anfangs "deaktivieren",sodass man auch ohne eine Vergleichszahl eingegeben zu haben ein Ergebnis kriegt? Sollte der Benutzer allerdings danach eine Zahl eingeben muss das Feld wieder "aktiviert" werden.