Globale Variable aus anderer Klasse ändern...

Jackii

Mitglied
Hallo alle,

ich möchte gleich anmerken das ich die Suchfunktion genutz habe aber leider nichts passendes gefunden habe...:(

Also ich möchte gerne folgendes tun:
Ich habe eine Klasse (hier mal Start.java) die den benutzer eine Auswahl an bildern bietet. Der Benutzer kann sich ein Aussuchen und per Button wird er weitergeleitet....Klasse 2 (hier Spiel.java) wird gestartet. Dort soll in einem Label das Bild angezeigt werden.

PROBLEM: ;(
Wie kann ich das Bild in die zweite klasse laden. (Das bild liegt in einer Globalen variable gespeichert in der Klasse 1, Das JLabel in klasse 2 ist public)

Hier mal ein paar Code schnipsel zum verdeutlichen:
Klasse 1
Java:
public class Start extends javax.swing.JFrame {
  public static JLabel SteinbildX = new JLabel(new ImageIcon("image/X.jpg")); 
....
  public static void leseEingabeAus() {
        //Spieler 1
        if(jComboBox1.getSelectedItem() == "X") {
            Sp1Stein = "X";
            System.out.println("Spieler1: waehlte X");
            //hier soll das bild uebergeben werden...
        }
        .....
  }
....
}

Klasse 2
Java:
public class Spiel extends javax.swing.JFrame {
   public static jLabel1 bild;
....
}

die ... stehen für Kürzung des Quellcodes
Danke schonmal für eure Hilfe ;)
 

kaoZ

Top Contributor
aiaiaiai, der Code Schreibt gradezu nach anständiger Formatierung ;)

Java:
 public static JLabel SteinbildX = new JLabel(new ImageIcon("image/X.jpg"));

Da du dieses JLabel als Static deklarierst ist es für jedes erzeugte Objekt der Klasse Start gleich belegt.

1. Attribute einer Klasse sollten auch nur für diese sichtbar sein (private)
2. man sollte Klassen nur erweitern insofern man ihnen Funktionalität hinzufügt
3. Variablen schreibt man in Java lowerCamelCase ( z.B
Code:
steinBildX
)
4. Erstelle eine Konstantensammlung wenn du das Bild allen Klassen zugänglich machen möchtest
5. erstelle öffentliche Getter die dir diese Attribute liefern, in deinem Fall :

Java:
public class Start extends JFrame{
 private JLabel steinBildX;

 public Start(){
   steinBildX = new JLabel(new ImageIcon("image/x.jpg"));
 }

 public JLable getImageLable()         {return this.steinBildX;}
}

nun kannst du , insofern eine Instanz dieser Klasse in deiner anderen klasse existiert auf diesen Getter zugreifen

Java:
public class Spiel{

 private JLabel label;

 public Spiel(){
   Start s = new Start();

   this.label = s.getImageLabel();
 }
}

das ganze funktioniert natürlich auch statisch :

Java:
public class Start extends JFrame{
 public static JLabel steinBildX = new JLabel(new ImageIcon("image/x.jpg"));

 public Start(){}

 public static JLable getImageLabel()         {return steinBildX;}

und der aufruf in einer anderen Klasse:

Java:
public class Spiel{

 private JLabel label;

 public Spiel(){
   this.label = Start.getImageLabel();
 }
}
 
Zuletzt bearbeitet:

Jackii

Mitglied
Leider funkt es nicht so wie erhofft....

also ich hab ja:
Java:
public class Start extends javax.swing.JFrame {
    ...
    public static JLabel steinBildX = new JLabel(new ImageIcon("image/X.jpg")); 
    public static JLabel steinBildO= new JLabel(new ImageIcon("image/O.jpg"));

    ...                  

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {                                      
       ...
    }                                     

     public static JLabel getImageLabelX() {
         return steinBildX;
     }
     public static JLabel getImageLabelO() {
         return steinBildO;
     }
     ...
   public static void leseEingabeAus() {
    ...
   }

    public static boolean pruefeSpielstein(String Sp1, String Sp2) {
        boolean ergebnis = false;
        if(Sp1.equals(Sp2)) {   //pruefe auf gleichheit der Bilder
            ...
            ergebnis = false;
        } else {
            ...
            ergebnis = true;
            //Starte die Klasse Spiel()
            Spiel.start();
            new Start().setVisible(false);
        }
        return ergebnis;
    }
    ...                 
}
und
Java:
public class Spiel extends javax.swing.JFrame {
   ...
   public static void start() {
        Spiel.jLabel3 = Start.getImageLabelX();
        new Spiel().setVisible(true);  //um das neue Fester zu starten
    }
    ...
}

wenn ich das so mache verändet sich jLabel3 aber nicht...kann ich nicht direkt in der Klasse Start.java sagen das ich den "Wert" vom bild übergeben möchte???
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Spiel.jLabel3 = Start.getImageLabelX();

wie soll das auch funktionieren wenn du die Variable vorher nicht deklarierst ?

Spiel.jLable3 was soll das für ein Konstrukt sein ?

Du hast hier ja keine innere Klasse , demnach kannst du auch nicht über

Code:
Spiel.
auf irgendwelche Variablen zugreifen , dies geht wie gesagt nur beim zugriff auf Konstruktoren von inneren Klassen wie es z.B oftmal in der Graphics2D API der Fall ist.

Wenn dann so :
Java:
public class Spiel extends javax.swing.JFrame {
 
    private JLabel jLabel3;

   public static void start() {
        this.jLabel3 = Start.getImageLabelX();
        new Spiel().setVisible(true);  //um das neue Fester zu starten
    }
    ...
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Globale Variable mehrmals verwenden Java Basics - Anfänger-Themen 7
Traxter Globale Variable ? Java Basics - Anfänger-Themen 11
M Variablen Globale Variable? Java Basics - Anfänger-Themen 4
C lokale Variable verwenden statt globale Java Basics - Anfänger-Themen 7
S globale Variable deklarieren Java Basics - Anfänger-Themen 10
E Globale int Variable? Java Basics - Anfänger-Themen 6
K Datentypen Globale Variable direkt initialisieren oder im Konstruktor? Java Basics - Anfänger-Themen 13
T Globale Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
T Globale Variable (Font) Java Basics - Anfänger-Themen 21
A Globale Variable änderbar Java Basics - Anfänger-Themen 3
M Superglobale globale Variable? Java Basics - Anfänger-Themen 10
P Globale Variable Java Basics - Anfänger-Themen 3
J "globale" variable definieren? Java Basics - Anfänger-Themen 7
S Globale Variable / Methode Java Basics - Anfänger-Themen 5
P Globale Objekte Java Basics - Anfänger-Themen 2
S Vererbung/Globale Variablen Java Basics - Anfänger-Themen 8
Luk10 Globale (semi-finale) Varibalen Java Basics - Anfänger-Themen 9
U Globale Proxy Einstellungen ändern Java Basics - Anfänger-Themen 3
B Globale vector? Java Basics - Anfänger-Themen 7
B Methoden Globale Methoden "Toolbox" Java Basics - Anfänger-Themen 3
D globale Variablen zur Laufzeit erzeugen Java Basics - Anfänger-Themen 5
G Globale Variablen Java Basics - Anfänger-Themen 9
G Globale Variablen Java Basics - Anfänger-Themen 3
O globale variablen Java Basics - Anfänger-Themen 21
M Globale Variablen werden durch KeyListener nicht aktualisier Java Basics - Anfänger-Themen 10
G Müssen globale Funktionen immer "static" sein? Java Basics - Anfänger-Themen 13
A Globale Methode ohne imports und übergeben? Java Basics - Anfänger-Themen 2
P textfarbe,textgröße, textart als globale einstellung Java Basics - Anfänger-Themen 7
F Globale Variablen wie in C++? Java Basics - Anfänger-Themen 5
J "Globale Variablen" Java Basics - Anfänger-Themen 26
S globale Variablen Java Basics - Anfänger-Themen 9
D Globale Klassenvariablen. Java Basics - Anfänger-Themen 12
P Globale und ständige Überwachung eines Textfeldes auf text? Java Basics - Anfänger-Themen 40
J Globale Variablen Java Basics - Anfänger-Themen 3
D Globale Variablen Java Basics - Anfänger-Themen 31
C Globale Variablen und Array mit verschiedenen Typen Java Basics - Anfänger-Themen 3
S globale Variablen Java Basics - Anfänger-Themen 7
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
T Datum als Variable wert Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
U Wie mache ich die Variable xyz eindeutig/unique? Java Basics - Anfänger-Themen 20
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Variable Felderanzahl Java Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
W Schleife und einmal variable++ zu viel Java Basics - Anfänger-Themen 20
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
G variable kopieren bzw. woanders benutzen Java Basics - Anfänger-Themen 6
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
J Double Variable und Addition Java Basics - Anfänger-Themen 2
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
H Datentypen Wertebereich von <Klassenname> <Variable> Java Basics - Anfänger-Themen 12
M Private Variable Java Basics - Anfänger-Themen 2
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
s.marcii Modulo in der Variable einsetzen - ist das möglich? Java Basics - Anfänger-Themen 2
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
Y Wie kann ich die Variable in der Try Catch returnen? Java Basics - Anfänger-Themen 3
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
B Inkrement von Variable Java Basics - Anfänger-Themen 8
V Variablen statische Variable einer Objektvariable zuordnen Java Basics - Anfänger-Themen 3
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
J JTextField Bezeichnung als Variable Java Basics - Anfänger-Themen 3
N Wie kann ich eine meine Variable Final machen? Java Basics - Anfänger-Themen 1
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
H Variable um 1 erhört ausgeben Java Basics - Anfänger-Themen 4
V Erste Schritte Eine Array-Variable mit Benutzereingaben befüllen Java Basics - Anfänger-Themen 3
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
L cannot find symbol variable Kon Java Basics - Anfänger-Themen 8
C Statischer Typ aber Variable nicht statisch? Java Basics - Anfänger-Themen 5
H Variable.methode aufstellen, verstehen Java Basics - Anfänger-Themen 2
R Warnung, wenn eine Variable eingegeben wird Java Basics - Anfänger-Themen 6
S Variable einscannen Java Basics - Anfänger-Themen 30
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
J Input-Variable nicht sichtbar Java Basics - Anfänger-Themen 2
L Warum ist Variable null? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben