G
Garfield83
Gast
Hi Leute,
Hab ein Problem... und zwar:
Also wir haben jetzt in unserer Vorlesung ein wenig GUI durchgenommen.
Ich wollte jetzt mal zum Üben und Kennenlernen einen Taschenrechner implementieren.
Oook... soweit so gut. Also die Gui sieht schon so aus wie ich sie haben will.
Ich hab jetzt nur Probleme mit den Key Listeners. Also, das ganze ist bei uns im script irgendwie nicht so toll
beschrieben.
Vielleicht könnte mir jemand mal bei einer ganz leichten anweisung helfen.
Also wenn man die knöpfe b1 , bplus und b1 bgleich drückt dann sollte halt oben in der display leiste ( Also die display leiste ist die unter dem schriftzug, eine 2 erscheinen.
Ichhab jetzt schon mit inneren Klassen rumgespielt usw. aber komm nicht drauf wie das funktionieren soll.
Wäre wirklich sehr nett, wenn mir da vielleicht jemand helfen könnte.
Unten stehend der Code. Ist weniger als man denkt, durch de vielen buttons wurde der Konstruktor in der GUI Klasse halt rießig.
Also um noch mal mein Problem zusammenzufassen. Es geht mir darum, wie man im Endeffekt auf das Knopfdrücken reagiert.
MfG
Daniel
Hab ein Problem... und zwar:
Also wir haben jetzt in unserer Vorlesung ein wenig GUI durchgenommen.
Ich wollte jetzt mal zum Üben und Kennenlernen einen Taschenrechner implementieren.
Oook... soweit so gut. Also die Gui sieht schon so aus wie ich sie haben will.
Ich hab jetzt nur Probleme mit den Key Listeners. Also, das ganze ist bei uns im script irgendwie nicht so toll
beschrieben.
Vielleicht könnte mir jemand mal bei einer ganz leichten anweisung helfen.
Also wenn man die knöpfe b1 , bplus und b1 bgleich drückt dann sollte halt oben in der display leiste ( Also die display leiste ist die unter dem schriftzug, eine 2 erscheinen.
Ichhab jetzt schon mit inneren Klassen rumgespielt usw. aber komm nicht drauf wie das funktionieren soll.
Wäre wirklich sehr nett, wenn mir da vielleicht jemand helfen könnte.
Unten stehend der Code. Ist weniger als man denkt, durch de vielen buttons wurde der Konstruktor in der GUI Klasse halt rießig.
Code:
package Taschenrechnung;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TaschenrechnerGUI extends JFrame {
private JTextField display;
private JTextField eingabe;
private JButton b1;
private JButton b2;
private JButton b3;
private JButton b4;
private JButton b5;
private JButton b6;
private JButton b7 ;
private JButton b8;
private JButton b9;
private JButton b0 ;
private JButton bsqrt;
private JButton bpow;
private JButton bPunkt;
private JButton bmal ;
private JButton bgeteilt ;
private JButton bgleich ;
private JButton bplus ;
private JButton bminus ;
public TaschenrechnerGUI(String name){
this.display = new JTextField(30);
display.setEditable(false);
this.eingabe = new JTextField(30);
eingabe.setEditable(true);
this.setTitle(name);
this.setSize(400,250);
Container fensterInhalt = this.getContentPane();
fensterInhalt.setLayout(new FlowLayout());
//display
JPanel displayPanel = new JPanel();
displayPanel.setLayout(new GridLayout(2,1));
JPanel displayLabel = new JPanel();
JLabel dissi = new JLabel("Display");
displayLabel.add(dissi,"South");
displayPanel.add(displayLabel);
displayPanel.add(display);
fensterInhalt.add(displayPanel);
// eingabe
fensterInhalt.add(eingabe);
// Buttons
JPanel buttons = new JPanel();
JPanel tasten = new JPanel();
JPanel ops = new JPanel();
buttons.setLayout(new GridLayout(4,3));
ops.setLayout(new GridLayout(3,2));
//Die einzelnen Knöpfe
b1 = new JButton("1");
b2 = new JButton("2");
b3 = new JButton("3");
b4 = new JButton("4");
b5 = new JButton("5");
b6 = new JButton("6");
b7 = new JButton("7");
b8 = new JButton("8");
b9 = new JButton("9");
b0 = new JButton("0");
bsqrt = new JButton("sqrt");
bpow = new JButton("^");
bPunkt = new JButton(".");
bmal = new JButton("*");
bgeteilt = new JButton("/");
bgleich = new JButton("=");
bplus = new JButton("+");
bminus = new JButton("-");
buttons.add(b1);
buttons.add(b2);
buttons.add(b3);
buttons.add(b4);
buttons.add(b5);
buttons.add(b6);
buttons.add(b7);
buttons.add(b8);
buttons.add(b9);
buttons.add(b0);
buttons.add(bsqrt);
buttons.add(bpow);
ops.add(bmal);
ops.add(bgeteilt);
ops.add(bPunkt);
ops.add(bgleich);
ops.add(bminus);
ops.add(bplus);
tasten.add(buttons,"West");
tasten.add(ops,"Ost");
fensterInhalt.add(tasten);
setVisible(true);
// Hier die innere Klasse
class Zuhoerer implements ActionListener {
public void actionPerformed(ActionEvent ereignis) {
Object gedruecked = ereignis.getSource();
}// end methode
}// end innere ListenerKlasse
ActionListener zuhoerer = new Zuhoerer();
b1.addActionListener(zuhoerer);
}
public static void main(String[] args) {
//Taschenrechner rechner = new Taschenrechner("Rechner");
}
}
Code:
package Taschenrechnung;
public class Main {
public static void main(String[] args){
TaschenrechnerGUI rechner = new TaschenrechnerGUI("Taschenrechner");
}
}
Code:
package Taschenrechnung;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class Zuhoerer {
public void actionPerformed(ActionEvent ereignis) {
Object gedruecked = ereignis.getSource();
/*if(gedruecked==b1){
System.out.println("1");
}
if(gedruecked==b2){
System.out.println("2");
}
*/
}// end methode
}
Code:
package Taschenrechnung;
import java.awt.event.ActionEvent;
public interface ActionListener {
public void actionPerformed(ActionEvent e);
}
Also um noch mal mein Problem zusammenzufassen. Es geht mir darum, wie man im Endeffekt auf das Knopfdrücken reagiert.
MfG
Daniel