Frage von SuperDomatic, 33

JAVA,wie verwende ich eine Variabl in einer anderen Methode?

Möchte hier ganz gerne die Variabel mZufall verwenden. Die Methode zufallszahlerzeugen() muss dort stehen,da beim starten die Zufalls zahl erzeugt werden soll. Wie aber nun rufe ich diese Variabel beim "Mouse-Event" ab? Code (Text): public Hauptfenster() { zufall1 = new Zufallszahlen();

    int mZufall= zufall1.zufallszahlerzeugen();
    System.out.println(mZufall);
    setTitle("Zufallszahlen");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBackground(new Color(255, 240, 245));
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);
   
    lbErgebnis = new JLabel("New label2");
    lbErgebnis.setBounds(176, 120, 75, 20);
    contentPane.add(lbErgebnis);

Habe nur mal einen Ausschnit hier von gezeigt ↓ Wie kann ich jetzt hier mZufall abrufen?? Code (Text):

public void mouseClicked(MouseEvent e) { //btLos System.out.println(mZufall);

            try
            {
               
                //Zufallszahl generieren
               
                        //speichern
                   
                        zufall1.setbZahl(Integer.parseInt(tfZahl.getText()));
                   
               
           
                        zufall1.setbZahl(Integer.parseInt(tfZahl.getText()));
                        zufall1.getbZahl();
                       

                //überprüfen ob die Zufallszahl richtig ist
                if(mZufall==zufall1.getbZahl())
                {
                    JOptionPane.showMessageDialog(null, "Du bisch der besche yoo!");
                    lbErgebnis.setText("Richtig");
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von stoffe19, 32

public int mZufall; dann kannst du auch von anderen Klassen aus drauf zugreifen

Kommentar von SuperDomatic ,

habe ich gemacht.

public int mZufall;


mZufall= zufall1.zufallszahlerzeugen();


wäre aber falsch

und es ist ein und die selbe Klasse

Kommentar von stoffe19 ,

Du musst es vor die Main schreiben! also gleich nach dem Teil mit der Klassendefinition

Kommentar von SuperDomatic ,

Dankeschön

Kommentar von stoffe19 ,

Bittö ;) :)

Antwort
von daCypher, 23

Sehe ich das richtig, dass du `int mZufall= zufall1.zufallszahlerzeugen();` im Konstruktor von `Hauptfenster` deklarierst und nicht in der Klasse `Hauptfenster`?

Normalerweise hast du ja eine übergeordnete Klasse, in der der Konstruktor und die Methoden und Attribute der Klasse stehen. (Also sowas wie public class Hauptfenster)

wenn du da drin int mZufall; schreibst, hast du die Variable innerhalb der ganzen Klasse deklariert. Wenn du z.B. public int mZufall; schreibst, kannst du sogar von außerhalb der Klasse direkt darauf zugreifen.

Im Konstruktor musst du dann das `int` aus der Zeile `int mZufall= zufall1.zufallszahlerzeugen();` wegnehmen, sonst erzeugst du eine neue Variable mZufall innerhalb des Konstruktors.


Kommentar von daCypher ,

Also um zu verdeutlichen, was ich meine:

    public class Hauptfenster {

        int mZufall; // <-- Hier wird die Variable deklariert

        public Hauptfenster() {
            zufall1 = new Zufallszahlen();
            mZufall= zufall1.zufallszahlerzeugen(); // <-- Hier wird sie beschrieben
            System.out.println(mZufall);
            setTitle("Zufallszahlen");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 450, 300);
            contentPane = new JPanel();
            contentPane.setBackground(new Color(255, 240, 245));
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);

            lbErgebnis = new JLabel("New label2");
            lbErgebnis.setBounds(176, 120, 75, 20);
            contentPane.add(lbErgebnis);
            }

        public void mouseClicked(MouseEvent e) {
            //btLos System.out.println(mZufall);
             try
             {

                 //Zufallszahl generieren

                 //speichern

                 zufall1.setbZahl(Integer.parseInt(tfZahl.getText()));



                 zufall1.setbZahl(Integer.parseInt(tfZahl.getText()));
                 zufall1.getbZahl();


                 //überprüfen ob die Zufallszahl richtig ist
                 if(mZufall==zufall1.getbZahl())
                 {
                     JOptionPane.showMessageDialog(null, "Du bisch der besche yoo!");
                     lbErgebnis.setText("Richtig");
                 }
            }
        }
    }

Antwort
von Royce, 33

mZufall als public variable deklarieren

Kommentar von SuperDomatic ,

Wie und wo mache ich das?

Antwort
von KaiuweBro, 25

Als Public Varaible deklarieren oder die Variable an die Funktion übergeben

Kommentar von SuperDomatic ,

wo müsste das dann hin?

Keine passende Antwort gefunden?

Fragen Sie die Community