Hallo liebe Helfer,
ich habe ein Problem mit dem ActionListener ab Zeile 128 , wenn ich den Button drücke wird die Rechenoperation ausgeführt (das Funktioniert auch), aber ich möchte das er mir nur eine bestimmte Rechenoperation ausführt und zwar die Vorgewählte [JAVA=128] if ((e.getSource() == button)) [/code] in diesen Fall Stromberechnung: Also Button gedrückt=>rechne, aber nur das was ich Vorgewählt habe
Meine Überlegung ist, das ich eine Bedingung habe, drücke Button UND, und dann komme ich nicht weiter;(.
if ((e.getSource() == button && "Vorwahl?????"))
Ich hoffe ich habe es einigermaßen Vernünftig erklärt und danke für eure Hilfe.
Gruß Niu
ich habe ein Problem mit dem ActionListener ab Zeile 128 , wenn ich den Button drücke wird die Rechenoperation ausgeführt (das Funktioniert auch), aber ich möchte das er mir nur eine bestimmte Rechenoperation ausführt und zwar die Vorgewählte [JAVA=128] if ((e.getSource() == button)) [/code] in diesen Fall Stromberechnung: Also Button gedrückt=>rechne, aber nur das was ich Vorgewählt habe
Meine Überlegung ist, das ich eine Bedingung habe, drücke Button UND, und dann komme ich nicht weiter;(.
if ((e.getSource() == button && "Vorwahl?????"))
Ich hoffe ich habe es einigermaßen Vernünftig erklärt und danke für eure Hilfe.
Gruß Niu
Java:
package me.niukaste.ETechnik;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
public class Frame extends JFrame {
JLabel maintext;
JLabel eingabetext1;
JLabel eingabetext2;
JButton button;
JTextField eingabe1;
JTextField eingabe2;
JLabel ergebnis;
JPanel panel;
JPanel radiopanel;
JRadioButton strom;
JRadioButton spannung;
JRadioButton leistung;
ButtonGroup gruppe; //Für Radiobuttons immer nur einer gedrückt
public Frame (){
setTitle("E-Technik");
setSize(500, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(true);
setLayout(null);
maintext = new JLabel("E-Technik");
maintext.setBounds(10, 10, 250, 24); // x, y, breite, höhe
Font schrift = (maintext.getFont().deriveFont(Font.PLAIN, 20));
maintext.setFont(schrift);
maintext.setToolTipText("Tolle Hilfe!");
add(maintext);
eingabetext1 = new JLabel("Eingabe1");
eingabetext1.setBounds(100, 52, 130, 18); // x, y, breite, höhe
Font schrift1 = (eingabetext1.getFont().deriveFont(Font.PLAIN, 15));
eingabetext1.setFont(schrift1);
eingabetext1.setToolTipText("Tolle Hilfe!");
add(eingabetext1);
eingabetext2 = new JLabel("Eingabe2");
eingabetext2.setBounds(100, 82, 130, 18); // x, y, breite, höhe
Font schrift2 = (eingabetext2.getFont().deriveFont(Font.PLAIN, 15));
eingabetext2.setFont(schrift2);
eingabetext2.setToolTipText("Tolle Hilfe!");
add(eingabetext2);
button = new JButton("Bestätigen!");
button.setBounds(380, 200, 100, 25); // x, y, breite, höhe
button.setEnabled(false);
button.addActionListener(new ButtonListener());
add(button);
eingabe1 = new JTextField();
eingabe1.setBounds(10, 50, 80, 25); // x, y, breite, höhe
eingabe1.setEnabled(false);
eingabe1.addCaretListener(new TextfieldListener());
add(eingabe1);
eingabe2 = new JTextField();
eingabe2.setBounds(10, 80, 80, 25); // x, y, breite, höhe
eingabe2.setEnabled(false);
eingabe2.addCaretListener(new TextfieldListener());
add(eingabe2);
ergebnis = new JLabel("Ergebnis");
ergebnis.setBounds(250, 80, 80, 25); // x, y, breite, höhe
add(ergebnis);
//panel für Radiopanel
radiopanel = new JPanel();
radiopanel.setLayout(null);
radiopanel.setBounds(5, 120, 170, 160); // x, y, breite, höhe
add(radiopanel);
strom = new JRadioButton("Stromberechnung");
strom.setBounds(0, 10, 200, 45); // x, y, breite, höhe
strom.addItemListener(new CheckboxListener());
radiopanel.add(strom);
spannung = new JRadioButton("Spannungsberechnung");
spannung.setBounds(0, 40, 200, 45); // x, y, breite, höhe
spannung.addItemListener(new CheckboxListener());
radiopanel.add(spannung);
leistung= new JRadioButton("Leistungsberechnung");
leistung.setBounds(0, 70, 200, 45); // x, y, breite, höhe
leistung.addItemListener(new CheckboxListener());
radiopanel.add(leistung);
gruppe = new ButtonGroup(); //Zuständig für "One Klick"
gruppe.add(strom); //Zuständig für "One Klick"
gruppe.add(spannung); //Zuständig für "One Klick"
gruppe.add(leistung); //Zuständig für "One Klick"
setVisible (true); //muss der letzte Aufruf sein, sonst Verzögerung beim Bildaufbau
}
//Was soll passieren wenn Button gedrückt wird
private class ButtonListener implements ActionListener{
@Override
public void actionPerformed (ActionEvent e) {
if ((e.getSource() == button)){
String e1 = eingabe1.getText();
int strom = Integer.parseInt(e1); //in Int wandeln
String e2 = eingabe2.getText();
int spannung = Integer.parseInt(e2); //in Int wandeln
int x=(spannung*strom);
Integer meinInteger = new Integer(x);
String ergebniss = meinInteger.toString(); //In String wandeln
ergebnis.setText(ergebniss) ; //Ausgabe vom Ergebnis
}
}
}
//Eingabefelder Überwachung das was reingeschrieben wird
private class TextfieldListener implements CaretListener{
@Override
public void caretUpdate(CaretEvent arg0) {
String s1 = eingabe1.getText();
String s2 = eingabe2.getText();
s1 = s1.trim(); //Leerzeichenüberprüfung
s2 = s2.trim(); //Leerzeichenüberprüfung
if (s1.isEmpty() || (s2.isEmpty())){
button.setEnabled(false);
}else{
button.setEnabled(true);
}
}
}
//Ändern der Eingabefelderbeschreibung
private class CheckboxListener implements ItemListener{
@Override
public void itemStateChanged(ItemEvent g) {
if (g.getSource() == strom) {
eingabetext1.setText("Leistung in Watt");
eingabetext2.setText("Spannung in Volt");
maintext.setText(((JRadioButton)g.getSource()).getText());
eingabe1.setEnabled(true);
eingabe2.setEnabled(true);
}else if (g.getSource() == spannung){
eingabetext1.setText("Leistung in Watt");
eingabetext2.setText("Strom in Ampere");
maintext.setText(((JRadioButton)g.getSource()).getText());
eingabe1.setEnabled(true);
eingabe2.setEnabled(true);
}else if(g.getSource() == leistung){
eingabetext1.setText("Spannung in Volt");
eingabetext2.setText("Strom in Ampere");
maintext.setText(((JRadioButton)g.getSource()).getText());
eingabe1.setEnabled(true);
eingabe2.setEnabled(true);
}
}
}
}
Zuletzt bearbeitet: