Grafische Oberfläche mit Buttons und Actionlistener?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

habe folgendes Problem.

Habe 1 Java-File programmiert die mir beim ausführen ein Fenster mit 2 Buttons öffnet und dann wenn auf den Button geklickt wird, in einem Label von 0 hochgezählt wird (Button "+") und wenn man den anderen Button drückt (Button "-") das wieder eins abgezogen wird von der Zahl die gerade dort steht...

Leider bin ich nur soweit gekommen, dass beide Buttons einen draufrechnen und, sowohl der "+" als auch der "-" - Button...

Hier mal der Quellcode:

Code:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class ZaehlerGUI extends JFrame {

   AktionsAbhoerer_01 einAbhoerer;
   JButton jbutton1;
   JButton jbut;
   JLabel jlabel1;
 
   int zaehler;

   //=======================================
   // Konstruktor

   public ZaehlerGUI(){

      this.initKomp();
      this.setTitle("ZaehlerGUI");
      this.setSize(170,100);
      this.setLocation(100,100);
      this.setVisible(true);

   } // Ende Konstruktor

   //=======================================
   // Methode dient zur Initialisierung

   private void initKomp() {

      einAbhoerer = new AktionsAbhoerer_01(this);
      zaehler = 0;

      Container cp = getContentPane();
      cp.setLayout(null);

      jbutton1 = new JButton("+");
      jbutton1.addActionListener(einAbhoerer);
      jbutton1.setBounds(30,10,50,20);
      cp.add(jbutton1);
	
      jbut = new JButton("-");
      jbut.addActionListener(einAbhoerer);
      jbut.setBounds(90,10,50,20);
      cp.add(jbut);

      jlabel1 = new JLabel();
      jlabel1.setBounds(80,40,110,20);
      jlabel1.setHorizontalAlignment(2);
      cp.add(jlabel1);

   } // Ende Methode - initKomp

   //========================================
   // Einstiegspunkt

   public static void main (String args []){

      new ZaehlerGUI();

   } // Ende der main - Methode

} // Ende der Klasse ZaehlerGUI

Hier der Quellcode vom ActionListener:

Code:
import java.awt.event.*;

public class AktionsAbhoerer_01 implements ActionListener{

   ZaehlerGUI einGUI;
   
   //===================================
   // Konstruktor

   public AktionsAbhoerer_01(ZaehlerGUI zGUI){

      einGUI = zGUI;
    

   } // Ende Konstruktor

   //==================================
   // Methode zur Bearbeitung des Ereignisses

   public void actionPerformed(ActionEvent e){

     
      einGUI.zaehler++;
      String s = String.valueOf(einGUI.zaehler);
      einGUI.jlabel1.setText(s);

      
   } // Ende der Methode actionPerformed

} // Ende der Klasse AktionsAbhoerer_01

Hoffe ihr wisst wies weitergeht??

mfg
 

outbreaker

Bekanntes Mitglied
Verstehe jetzt noch nicht ganz dein Problem!

Du kannst doch für das Runterzählen z.B. in einen weiteren ActionListener machen der dann

Code:
public void actionPerformed(ActionEvent e){
einGUI.zaehler--;
String s = String.valueOf(einGUI.zaehler);
einGUI.jlabel1.setText(s);
}

macht

oder du machst in deiner actionPerformed-Methode eine Abfrage welcher Button gedrückt wurde

z.B. so

Code:
if (e.getActionCommand().equals("--"))
{
...
}

dazu musst du dann aber bei jedem Button mit setActionCommand() den Command setzen
 
G

Guest

Gast
wie würde das denn für eine If-Abfrage aussehen, wenn man gucken soll ob der Button geklickt wurde??

also die sache in der ActionPerformed-Methode?

mfg
 

outbreaker

Bekanntes Mitglied
genau in die actionPerformed

Code:
public void actionPerformed(ActionEvent e){
if (e.getActionCommand().equals("--"))
{
...
}
}

aber du musst den ActionCommand auch vorher setzen bei den Buttons
 
G

Guest

Gast
So?

Code:
import java.awt.event.*;

public class AktionsAbhoerer_01 implements ActionListener{

   ZaehlerGUI einGUI;
   
   //===================================
   // Konstruktor

   public AktionsAbhoerer_01(ZaehlerGUI zGUI){

      einGUI = zGUI;
      
   } // Ende Konstruktor

   //==================================
   // Methode zur Bearbeitung des Ereignisses

   public void actionPerformed(ActionEvent e){

      if (jbutton2.getSource().equals("--")) {
      einGUI.zaehler--; 
      }
      if (jbutton1.getSource().equals("++")) {
      einGUI.zaehler++;
      }
      String s = String.valueOf(einGUI.zaehler);
      einGUI.jlabel1.setText(s);

     
      
   } // Ende der Methode actionPerformed

} // Ende der Klasse AktionsAbhoerer_01
 

outbreaker

Bekanntes Mitglied
welches arg0???

beim ActionCommand?
da kannst du z.B. einen String nehmen setActionCommand("plus")
und das dann in der actionPerformed abfragen
 
M

MiDniGG

Gast
Nö.

Code:
public void actionPerformed(ActionEvent e){

      if (e.getSource() == jbutton2) {
      einGUI.zaehler--;
      }
      else if (e.getSource() == jbutton1) {
      einGUI.zaehler++;
      }
   }

joa oda eben so wie outbreaker
 
G

Guest

Gast
midnigg hat gesagt.:
Nö.

Code:
public void actionPerformed(ActionEvent e){

      if (e.getSource() == jbutton2) {
      einGUI.zaehler--;
      }
      else if (e.getSource() == jbutton1) {
      einGUI.zaehler++;
      }
   }

joa oda eben so wie outbreaker

ne das klappt nicht..der meldet mir folgendes:

Code:
C:\Programme\Java\jdk1.6.0_03\bin\AktionsAbhoerer_01.java:21: cannot find symbol
symbol  : variable jbutton2
location: class AktionsAbhoerer_01
       if (e.getSource() == jbutton2) { 
                            ^
C:\Programme\Java\jdk1.6.0_03\bin\AktionsAbhoerer_01.java:24: cannot find symbol
symbol  : variable jbutton1
location: class AktionsAbhoerer_01
      if (e.getSource() == jbutton1) { 
                           ^
2 errors

Process completed.

Es wird zwar ausgeführt, jedoch rechnet er nicht hoch beim Klick auf den + Button und nicht runter beim Klick auf den Minus-Button...??

mfg
 
G

Guest

Gast
die Buttons heißen ja jbutton1 und jbutton2???


Code:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class ZaehlerGUI extends JFrame {

   AktionsAbhoerer_01 einAbhoerer;
   JButton jbutton1;
   JButton jbutton2;
   JLabel jlabel1;
 
   int zaehler;

   //=======================================
   // Konstruktor

   public ZaehlerGUI(){

      this.initKomp();
      this.setTitle("ZaehlerGUI");
      this.setSize(170,100);
      this.setLocation(100,100);
      this.setVisible(true);

   } // Ende Konstruktor

   //=======================================
   // Methode dient zur Initialisierung

   private void initKomp() {

      einAbhoerer = new AktionsAbhoerer_01(this);
      zaehler = 0;

      Container cp = getContentPane();
      cp.setLayout(null);

      jbutton1 = new JButton("+");
      jbutton1.addActionListener(einAbhoerer);
      jbutton1.setBounds(30,10,50,20);
      cp.add(jbutton1);
	
      jbutton2 = new JButton("-");
      jbutton2.addActionListener(einAbhoerer);
      jbutton2.setBounds(90,10,50,20);
      cp.add(jbutton2);

      jlabel1 = new JLabel();
      jlabel1.setBounds(80,40,110,20);
      jlabel1.setHorizontalAlignment(2);
      cp.add(jlabel1);

   } // Ende Methode - initKomp

   //========================================
   // Einstiegspunkt

   public static void main (String args []){

      new ZaehlerGUI();

   } // Ende der main - Methode

} // Ende der Klasse ZaehlerGUI
 
M

MiDniGG

Gast
So schönen guten Morgen :?

Aaaalso. Dein Problem ist, dass dein ActionListener deine Buttons nicht sieht.
D.H. ich hab mich getäuscht und du solltest das ActionCommand nehmen. Oooder du nimmst doch meine Variante und statt den Listener auszulagern schmeißt du ihn in die Klasse die auch die Buttons besitzt.
 

outbreaker

Bekanntes Mitglied
Also eigentlich müsste dein weg auch gehen aber er muss halt in der actionPerformed

Code:
einGUI.jbutton1
schreiben und nicht nur jbutton1

also dann so:


Code:
public void actionPerformed(ActionEvent e){

      if (e.getSource() == einGUI.jbutton2) {
      einGUI.zaehler--;
      }
      else if (e.getSource() == einGUI.jbutton1) {
      einGUI.zaehler++;
      }
   }


Edit
-----------------------------------------


dazu müssen die Buttons aber in deiner ZaehlerGUI auch jbutton1 und jbutton2 heißen und nicht jbutton1 und jbut ;-)
 
M

MiDniGG

Gast
Hm. Da könntest wohl recht haben.....

Ich hol mir etz erst ma nen Kaffee. ^^

EDIT: Das heißten sie mittlerweile au ;-) War auch ein bisschen verwirrt...

EDIT2: Wo hast du den Quellcode eig her? Hast den selber geschrieben oder irgendwo rauskopiert?
 

The_S

Top Contributor
outbreaker hat gesagt.:
Also eigentlich müsste dein weg auch gehen aber er muss halt in der actionPerformed

Code:
einGUI.jbutton1
schreiben und nicht nur jbutton1

also dann so:


Code:
public void actionPerformed(ActionEvent e){

      if (e.getSource() == einGUI.jbutton2) {
      einGUI.zaehler--;
      }
      else if (e.getSource() == einGUI.jbutton1) {
      einGUI.zaehler++;
      }
   }

Das ist dann aber mal gepfuscht :p
 

outbreaker

Bekanntes Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
outbreaker hat gesagt.:
Also eigentlich müsste dein weg auch gehen aber er muss halt in der actionPerformed

Code:
einGUI.jbutton1
schreiben und nicht nur jbutton1

also dann so:


Code:
public void actionPerformed(ActionEvent e){

      if (e.getSource() == einGUI.jbutton2) {
      einGUI.zaehler--;
      }
      else if (e.getSource() == einGUI.jbutton1) {
      einGUI.zaehler++;
      }
   }

Das ist dann aber mal gepfuscht :p

ich wäre eh lieber für die ActionCommands gewessen aber so gehts halt auch
Wenn es auch nicht schön ist!

weil jbutton2/1 ja eigentlich private sein sollten und maximal über eine getJButton2 oder 1 zugänglich sein sollten
 

The_S

Top Contributor
ich bin generell schon für die "getSource()" Methode. Einfach aus dem Grund, dass ein actionCommand auch mal identisch sein kann. Aber dann halt die JFrame Klasse den ActionListener implementieren lassen oder gleich ne innere Klasse.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
TomatenBrot447 Programmieraufgabe - Grafische Oberfläche- falsches Ergebnis? Java Basics - Anfänger-Themen 15
S Grafische Oberfläche Quellcode ändern Java Basics - Anfänger-Themen 8
B Grafische Oberfläche für Java-Programm Java Basics - Anfänger-Themen 5
T Grafische Oberfläche Java Basics - Anfänger-Themen 14
J Editor für grafische Oberfläche Java Basics - Anfänger-Themen 12
F Grafische Oberfläche.ist das kompliziert? Java Basics - Anfänger-Themen 7
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
H Mehrsprachigkeit und grafische Oberflächen Java Basics - Anfänger-Themen 4
R Grafische Benutzeroberfläche GUI nachträglich einbauen Java Basics - Anfänger-Themen 3
T Grafische programme - Variblen Schrift Java Basics - Anfänger-Themen 2
D Viele grafische unterschiede von Windows xp zu Windows 7 Java Basics - Anfänger-Themen 3
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
shiroX OOP Türme von Hanoi - einfache grafische Ausgabe Java Basics - Anfänger-Themen 2
K Panels, grafische Oberflächen Java Basics - Anfänger-Themen 7
K sich bewegende grafische Objekte Java Basics - Anfänger-Themen 68
N Grafische Programmierung mit jeweils anderen Bildern bei versch. Ergebnissen Java Basics - Anfänger-Themen 9
F grafische Anzeige von Werten Java Basics - Anfänger-Themen 2
A Grafische Umsetzung von Aktienkursen Java Basics - Anfänger-Themen 2
M JavaSpiel ohne grafische Umsetzung Java Basics - Anfänger-Themen 3
U Grafische Eingabe und ausgabe mit java Java Basics - Anfänger-Themen 5
V Grafische Auswertung (Ampel-System) Java Basics - Anfänger-Themen 12
B Grafische Darstellung einer Emailverteilerliste Java Basics - Anfänger-Themen 2
TechGirl JAVA GUI Oberfläche Umkreisung - wie heißt dieses Element? Java Basics - Anfänger-Themen 2
S Oberfläche aktualisiert nicht wegen sleep Java Basics - Anfänger-Themen 1
C class in main aufrufen (SWT Oberfläche) Java Basics - Anfänger-Themen 5
K Compilierfehler bei grafischer Oberfläche Java Basics - Anfänger-Themen 7
B eclipse Oberfläche zurück setzen Java Basics - Anfänger-Themen 2
B JPanel-Oberfläche speichern Java Basics - Anfänger-Themen 9
M Lottozahlen mit grafischer Oberfläche Java Basics - Anfänger-Themen 6
S Gui Oberfläche wird nicht richtig dargestellt Java Basics - Anfänger-Themen 5
D Oberfläche machen Java Basics - Anfänger-Themen 8
K Warum updated sich die Oberfläche nicht?! Java Basics - Anfänger-Themen 4
G Framework für eine Flexible Oberfläche! Java Basics - Anfänger-Themen 9
C Oberfläche & anderes Java Basics - Anfänger-Themen 6
C Oberfläche abscannen Java Basics - Anfänger-Themen 13
G Applet Oberfläche Java Basics - Anfänger-Themen 3
K Programm von selbsterstellter Oberfläche starten Java Basics - Anfänger-Themen 2
G Swing Oberfläche Java Basics - Anfänger-Themen 12
G JAR File will nicht von Oberfläche aus gestartet werden Java Basics - Anfänger-Themen 2
eQui Oberfläche mit Graphics zeichnen Java Basics - Anfänger-Themen 11
S Darstellungsfehler auf der Oberfläche Java Basics - Anfänger-Themen 6
M Datenbankabfrage über eine Java Oberfläche Java Basics - Anfänger-Themen 3
P Java Oberfläche mit Windows Feeling Java Basics - Anfänger-Themen 17
S Oberfläche - erhöht Java Basics - Anfänger-Themen 8
Y Grafikanwendungen zeigen keine Oberfläche an Java Basics - Anfänger-Themen 9
J Buttons mit graphischer, selbstgezeichneter Oberfläche Java Basics - Anfänger-Themen 9
Paule 2 Fragen zur grafischen Oberfläche Java Basics - Anfänger-Themen 5
S Graphische Oberfläche Java Basics - Anfänger-Themen 7
J Location von Oberfläche speichern Java Basics - Anfänger-Themen 6
G Laden und Speichern der Konfiguration einer gra. Oberfläche Java Basics - Anfänger-Themen 4
H Thread mit AWT-Oberfläche kombinieren Java Basics - Anfänger-Themen 6
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
D Custom Buttons oder Custom Combobox Java Basics - Anfänger-Themen 30
A Aktualisierung eines Buttons Java Basics - Anfänger-Themen 18
S Runde Buttons erstellen Java Basics - Anfänger-Themen 10
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
T Buttons... Java Basics - Anfänger-Themen 1
U Javafx Array aus Buttons Java Basics - Anfänger-Themen 2
L Buttons außerhalb der sichtbaren Activity Java Basics - Anfänger-Themen 8
E Hilfe bei Buttons (GUI) Java Basics - Anfänger-Themen 3
D Mit Buttonklick Farbe der anderen Buttons verändern? Java Basics - Anfänger-Themen 2
L Buttons ansprechen Java Basics - Anfänger-Themen 1
F Mehrfaches Clicken eines Buttons Java Basics - Anfänger-Themen 1
H Buttons zeigen keine Reaktion Java Basics - Anfänger-Themen 6
E Wenn i (for-Loop) bestimmter Wert, dann neue Zeile eines Buttons Java Basics - Anfänger-Themen 7
H Java Buttons ausblenden bei inaktivität Java Basics - Anfänger-Themen 1
A Nach Druck eines Buttons reagieren andere Button nicht Java Basics - Anfänger-Themen 3
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
D Variable Anzahl an Buttons per Schleife Java Basics - Anfänger-Themen 7
U Best Practice Buttons sollen ÜBER Labeln liegen, also quasi im Vordergrund. WIE? Java Basics - Anfänger-Themen 4
TheSorm Anzeige fehler eines Buttons Java Basics - Anfänger-Themen 3
M Icons auf Buttons Java Basics - Anfänger-Themen 9
S Variablen Variable bei drücken eines Buttons ändern Java Basics - Anfänger-Themen 1
M Buttons funktionieren nicht Java Basics - Anfänger-Themen 4
lord239123 Buttons werden nicht angezeigt Java Basics - Anfänger-Themen 3
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
M Größe eines Buttons festlegen Java Basics - Anfänger-Themen 4
W Buttons sollen bei Mausklick einen String schreiben Java Basics - Anfänger-Themen 11
J Aktivierung eines Buttons nach Eingabe in Textfeldern (DocumentListener) Java Basics - Anfänger-Themen 4
O Position des Buttons wird nicht geändert.. Java Basics - Anfänger-Themen 6
K Erste Schritte GUI - Hintergrundbild und darauf Buttons Java Basics - Anfänger-Themen 2
J BlueJ canvas Buttons adden? Java Basics - Anfänger-Themen 2
U Methoden Methode zur Erstellung von Buttons Java Basics - Anfänger-Themen 11
H Icons in Buttons resizable? Java Basics - Anfänger-Themen 3
C Buttons über Textfeld beschriften Java Basics - Anfänger-Themen 10
L OOP Buttons mit Pfeilen miteinander verbinden Java Basics - Anfänger-Themen 5
A Dropdown Liste - mit je zwei Verlinkungen und zwei ausführende Buttons Java Basics - Anfänger-Themen 3
I Dynamisch erzeugten Buttons Methoden zuweisen Java Basics - Anfänger-Themen 6
P Listener für mehrere Buttons Java Basics - Anfänger-Themen 3
S Hilfe bei Buttons Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
B Die Hintergrundfarbe eines deaktivierten buttons ändern? Java Basics - Anfänger-Themen 4
SheldoN Töne abspielen auf verschiedenen Buttons Java Basics - Anfänger-Themen 17
J durch drücken eines buttons text in einer textdatei speichern Java Basics - Anfänger-Themen 2
G MouseListener für mehrere Buttons Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben