ZaehlerGUI Java-Editor Problem

Hallo liebe Leute,

und zwar will ich einen Zähler machen, der immer +1 draufrechnet, auf die eingegebne Zahl wenn man auf den Knopf drückt. Dazu verwende ich Jframe im Java-Editor.

Ich habe folgende Klasse:

public class Zaehler {
 private int zaehler;
 
 public Zaehler() {
 zaehler = 0;
 }
 
 public int getZaehler() {
 return zaehler;
 }
 
 public void erhoeheZaehler(){
 zaehler++;
 }
}

Diese speicher ich natürlich im selben Ordner ab.

Und hier rein will ich das ganze reinmachen:

import java.awt.\*;
import java.awt.event.\*;
import javax.swing.\*;
import javax.swing.event.\*;

/\*\*
 \*
 \* Beschreibung
 \*
 \* @version 1.0 vom 17.12.2011
 \* @author
 \*/

public class ZaehlerGUI extends JFrame {
 // Anfang Attribute

 private JButton jButton1 = new JButton();
 private JTextField jTextField1 = new JTextField();
 // Ende Attribute

 public ZaehlerGUI(String title) {
 // Frame-Initialisierung
 super(title);
 setDefaultCloseOperation(WindowConstants.DISPOSE\_ON\_CLOSE);
 int frameWidth = 301; 
 int frameHeight = 300;
 setSize(frameWidth, frameHeight);
 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
 int x = (d.width - getSize().width) / 2;
 int y = (d.height - getSize().height) / 2;
 setLocation(x, y);
 setResizable(false);
 Container cp = getContentPane();
 cp.setLayout(null);
 // Anfang Komponenten

 jButton1.setBounds(0, 0, 297, 209);
 jButton1.setText("jButton1");
 jButton1.setMargin(new Insets(2, 2, 2, 2));
 jButton1.addActionListener(new ActionListener() { 
 public void actionPerformed(ActionEvent evt) { 
 jButton1\_ActionPerformed(evt);
 }
 });
 cp.add(jButton1);
 jTextField1.setBounds(0, 208, 297, 65);
 cp.add(jTextField1);
 // Ende Komponenten

 setVisible(true);
 }

 // Anfang Methoden
 public void jButton1\_ActionPerformed(ActionEvent evt ) {

 }

 // Ende Methoden

 public static void main(String[] args) {
 new ZaehlerGUI("ZaehlerGUI");
 }
}

Ich habe es versucht als erstes oben:

public class ZaehlerGUI extends JFrame {
Zaehler zaehler= new Zaehler();
int z

Ich weiß, dass ich unten noch was ändern muss bei events unter JButton, jedoch waren bisher alle mein Versuche zwecklos, auch google konnte mir nicht weiterhelfen, immer kommt irgendein Error.

Ich wäre sehr dankbar wenn jemand mir helfen könnte :smile:

Hi,
dein
Zaehler zaehler = new Zaehler();
muss zu den Attributen.

Der ganze Rest muss in die Methode:

public void jButton1_ActionPerformed(ActionEvent evt ) {

}

In der Klasse Zaehler fehlt die Methode setZaehler, wenn der User 5 eingibt soll ja 6 erscheinen und nicht 1!

Den wert aus dem TextField ließt du mit getText() aus. Dann hast du aber ein String, folge dessen musst du ihn in ein Integer parsen(konvertieren). Mit setText() setzt du ihn wieder hinein.
Lösung siehe unten!

Lg Dennis

Hier geht’s weiter zur Lösung (Vorher würde ich aber erste mal selbst probieren)!

Noch ein bisschen!

Lösung:

Klasse Zaehler

public class Zaehler {

// Anfang Attribute
private int zaehler;
// Ende Attribute

public Zaehler() {
this.zaehler = 0;
}

// Anfang Methoden
public void setZaehler(int zaehler) {
this.zaehler = zaehler;
}

public int getZaehler() {
return zaehler;
}

public void erhoeheZaehler() {
zaehler++;
}

// Ende Methoden
}

Dein JFrame:

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

public class ZaehlerGUI extends JFrame {
// Anfang Attribute
private Zaehler zaehler = new Zaehler();
private JTextField jTextField1 = new JTextField();
private JButton jButton1 = new JButton();
// Ende Attribute

public ZaehlerGUI(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 236;
int frameHeight = 77;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten

jTextField1.setBounds(8, 8, 113, 25);
jTextField1.setText(„0“);
cp.add(jTextField1);

jButton1.setBounds(128, 8, 91, 25);
jButton1.setText(„Höher“);
jButton1.setMargin(new Insets(2, 2, 2, 2));
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});
cp.add(jButton1);
// Ende Komponenten

setVisible(true);
}

// Anfang Methoden
public void jButton1_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
String text = jTextField1.getText(); // Text auslesen!
zaehler.setZaehler(Integer.parseInt(text)); // Text konvertieren und speichern!
zaehler.erhoeheZaehler(); // Zahl erhöhen!
jTextField1.setText(""+zaehler.getZaehler()); // Zahl ausgeben!

// Noch einfacher und ohne Klassen
// jTextField1.setText(""+(Integer.parseInt(jTextField1.getText())+1));
}

// Ende Methoden

public static void main(String[] args) {
new ZaehlerGUI(„ZaehlerGUI“);
}
}