Klassen Generell: Zugriff auf GUI-Klassen & -Elemente aus anderen Klassen

baphomet13

Mitglied
Liebe Alle,

Bin JAVA-Einsteiger und habe mehrere Projekte vor. Viele davon benötigen eine Datenbank-Verbindung und ein GUI. Der Übersichtlichkeit halber habe ich vor, generell mehrere Klassen zu entwickeln, in denen ich jeweils von einander "getrennte" Operationen lagere, also (z.B.) eine Klasse für die Datenbank-Operationen, eine für's GUI, eine mit der main, etc.

Bei meinen ersten Versuchen habe ich mich ziemlich schwer damit getan, den Zugriff auf bspw. ein JTextField in der GUI-Klasse von anderen Klassen aus zuzugreifen. Ich denke, dass mir hier eine grundlegende Idee entgangen ist.

Nach Google-Recherche stellte sich die Lage wie folgt dar.
Die meisten Nachfragen in Foren, etc. zu diesem Thema werden beantwortet mit "Zugriff auf GUI-Elemente aus anderen Klassen geht nicht." Ein paar jedoch nennen das "Observer Design-Pattern" als Möglichkeit.

Meine (generelle) Frage also: Wie läßt sich ein Zugriff auf GUI-Elemente aus anderen Klassen gestalten?

Als Beispiel: Ein mit Text vorbelegtes JTextField soll append()et werden um einen String, der in einer andere als der GUI-Klasse generiert wird.

Danke für Eure Hilfe & bitte sagt Bescheid, wenn Ihr mehr Info braucht.

Grüße,
b13

p.s.: Wären nicht getter/setter eine Möglichkeit?
 

AmunRa

Gesperrter Benutzer
natürlich sind getter und setter eine Möglichkeit. Das wasdu machen musst, ist einfach Object Orientiert Programmieren.

Wenn du eine Klasse GUI hast kann diese Klasse eine Methode append(String anbieten), diese Klasse verwaltet dann intern wie das ganze dann dargestellt wird.

Weiters hilfreich ist hier das MVC Prinzip
 

baphomet13

Mitglied
Wenn du eine Klasse GUI hast kann diese Klasse eine Methode append(String anbieten), diese Klasse verwaltet dann intern wie das ganze dann dargestellt wird.

Danke erstmal! Ich fürchte, ich bin durch OOP noch nicht ganz durchgestiegen.

Wäre es möglich, ein Minimalbeispiel zu geben? Ich weiß, dass das nicht gerade die feine englische Art ist, danach zu fragen, aber ich komme hier einfach nicht weiter. Denke, es würde mir einen Durchbruch verschaffen, das einmal in einem funktionierenden Beispiel zu sehen.

Besten Dank im Voraus!
 

baphomet13

Mitglied
Hm, so richtig vorwärts gekommen bin ich noch nicht (auch nicht nach Durchsicht des anderen Threads). Zur Präzisierung, ich möchte eine JTextArea append()en, nicht ein JTextField...

Ich habe jetzt folgendes:
Simple.java
Java:
public class Simple {

	public static void main(String[] args) {
		Guy gui = new Guy(null);
		gui.setText("100");
		System.out.println(gui.getText());
	}
}

Guy.java (Habe bereits eine andere Klasse "Gui" im Projekt, daher die etwas merkwürdige Benennung).
Java:
import javax.swing.*;
import java.awt.*;

public class Guy extends JFrame {
	
    private String text = "1";    //Holds the data for text
	
    public Guy (String textVal)
    {
    	/** Anfang Paste */
    	super("Fenster Titel");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        getContentPane().setLayout(new FlowLayout());

        JTextArea area = new JTextArea();
        area.setEditable(false);
        area.append(getText());
        getContentPane().add(area);

        setLocation(250, 190);
        setSize(300, 90);
        setVisible(true);
    	/** Ende Paste */
    	
    }//end constructor Guy
	
	public String getText ( )
       {
           return text;
       }//end method getText

       public void setText (String textVal)
       {
           text = textVal;           
       }//end method setText
       
}

*Natürlich* funktioniert das noch nicht. Zeile 17 in Guy.java hängt natürlich "1" und nicht "100" an (weil der setText-Aufruf in der main ja nach Instanziierung von Guy geschieht).

Jetzt weiß ich trotzdem nicht genau, wo ich hier weiterkomme. Hatte daran gedacht, das GUI wie im Oracle-Tutorial per invokeLater aufzurufen, aber das funktioniert auch nicht...

Für weitere Tips & Code-Fixes wäre ich sehr dankbar.

Tut mir leid, Ihr habt sicherlich Besseres zu tun als 100x durchgekauten Code zu verbessern, aber ich habe ein Brett vor'm Kopf.

Danke!
 

ARadauer

Top Contributor
//Holds the data for text
nein da hast du dir mvc nicht genau angesehen...

aber wurscht...

nur weil du den text änderst, ändert sich natürlich nciht der inhalt der area


Java:
import javax.swing.*;
import java.awt.*;

public class Guy extends JFrame {

   private JTextArea area;

   public Guy(String textVal) {
      /** Anfang Paste */
      super("Fenster Titel");
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      getContentPane().setLayout(new FlowLayout());

      area = new JTextArea();
      area.setEditable(false);
      area.append(getText());
      getContentPane().add(area);

      setLocation(250, 190);
      setSize(300, 90);
      setVisible(true);
      /** Ende Paste */

   }// end constructor Guy

   public String getText() {
      return area.getText();
   }// end method getText

   public void setText(String textVal) {
      area.append(textVal);
   }// end method setText

}

Guy.java (Habe bereits eine andere Klasse "Gui" im Projekt, daher die etwas merkwürdige Benennung).
nicht dein ernst oder?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Datenbankanbindung generell Java Basics - Anfänger-Themen 15
R Generell GUI + Button + Textboxes Java Basics - Anfänger-Themen 2
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
H Zugriff verweigert Java Basics - Anfänger-Themen 5
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
B Zugriffsmodifier, Zugriff außerhalb Package Java Basics - Anfänger-Themen 5
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
L Methoden Zugriff <identifier> expected Java Basics - Anfänger-Themen 13
T Java - Zugriff nur mit CLASSPATH ? Java Basics - Anfänger-Themen 7
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
S Zugriff auf Objekt Java Basics - Anfänger-Themen 5
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
H Datentypen ArrayList in ArrayList: Zugriff Java Basics - Anfänger-Themen 6
J get methoden zugriff und objekt erzeugung Java Basics - Anfänger-Themen 30
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
T Zugriff auf JCheckBox Java Basics - Anfänger-Themen 8
E Netzlaufwerk Zugriff schlägt fehl Java Basics - Anfänger-Themen 11
C Group, Actor und Instanz-Zugriff, LibGDX Java Basics - Anfänger-Themen 4
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
S Vererbung Zugriff auf die Basisklasse einer "zweiten" Erweiterungsklasse Java Basics - Anfänger-Themen 2
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J Sichtbarkeit und Zugriff Java Basics - Anfänger-Themen 9
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
L Zugriff auf zwei Java-Quellcodes Java Basics - Anfänger-Themen 3
A OOP Zugriff auf Objekte von außen Java Basics - Anfänger-Themen 8
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
G Methoden Zugriff auf Methode.. aus einer anderen Klasse Java Basics - Anfänger-Themen 6
J JDialog Zugriff auf parent JDialog Java Basics - Anfänger-Themen 5
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
F Zugriff auf Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
J Erste Schritte Zugriff auf Eigenschaft Java Basics - Anfänger-Themen 2
M MVC - Problem mit Zugriff auf Objekt Java Basics - Anfänger-Themen 4
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
C 5 - Zugriff verweigert Java Basics - Anfänger-Themen 1
K Zugriff auf Variabeln Wert einer Instanz Java Basics - Anfänger-Themen 4
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
Z Zugriff auf andere Methoden Java Basics - Anfänger-Themen 12
Z Zugriff auf Pakete Java Basics - Anfänger-Themen 5
G Zugriff zwischen Klassen Java Basics - Anfänger-Themen 15
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
W OOP Zugriff auf mit Objekt erstellte Struktur Java Basics - Anfänger-Themen 7
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
W Typisierte ArrayList und der Zugriff auf den Typ Java Basics - Anfänger-Themen 5
M Zugriff auf Klasse Java Basics - Anfänger-Themen 2
K Zugriff auf C: Java Basics - Anfänger-Themen 5
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
N Zugriff bei Package Struktur Java Basics - Anfänger-Themen 6
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
V Zugriff auf jProgressbar Java Basics - Anfänger-Themen 10
B Zugriff auf csv-Datei per hashmap Java Basics - Anfänger-Themen 5
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
T ZUgriff auf 'Werte' Java Basics - Anfänger-Themen 3
J Vererbung Zugriff auf private Variable Java Basics - Anfänger-Themen 10
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
B Methoden Zugriff auf Variable ermöglichen Java Basics - Anfänger-Themen 3
M Zugriff auf Arraylist Java Basics - Anfänger-Themen 7
D Kein Zugriff auf JFrame Java Basics - Anfänger-Themen 2
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
B Erste Schritte Array-Zugriff Java Basics - Anfänger-Themen 10
D OOP Zugriff auf Objekte A in Klasse A aus Objekt B in Klasse B Java Basics - Anfänger-Themen 3
T Collections Zugriff auf Elemente aus Iterator() Schleife Java Basics - Anfänger-Themen 4
J Threads Zugriff auf Attribute Java Basics - Anfänger-Themen 16
N Kein Zugriff auf Ordner -> NullPointerException Java Basics - Anfänger-Themen 2
I kein zugriff auf jList oder Textfield Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben