Netbeans: wie auf grafische Elemente zugreifen von externem File?

Mondmann

Mondmann

Aktives Mitglied
Thread Starter
Dabei seit
21.07.2004
Beiträge
3.246
Reaktionspunkte
183
Hallole.

Ich mache also gerade schmerzvolle Erfahrungen mit Java.

Ich habe eine kleine grafische Oberfläche mit Netbeans zusammengeklickt.
Bei start liest er ein paar Zeilen aus einer Datei ein, und nutzt diese Informationen um einen Socket auszubauen und mit einem Server zu kommunizieren. Funktioniert einwandfrei.

Jetzt möchte ich diese ganzen sachen etwas "aufräumen" und möchte die beschriebene funktion in ein anderes File auslagern und dan im Hauptfile aufrufen.

Ich erstelle also einen neue Datei "funktionen.java" und importiere sie im Hauptfile "TestFrame.java".
Ich erstelle eine klasse in der "funktionen.java" die eine einfache MEssagebox ausgibt, erstelle im Hauptfile eine INstanz dieser Klasse und rufe sie auf.
Es funktioniert, der Dialog erscheint.
So weit so gut.

Jetzt sind die grafischen objekte, wie div. Textfelder ja im Hauptfile deklariert.
Um Meldungstexte auszugeben sollte ich aber in der Datei "funktionen.java" auf diese Objekte zugreifen können.

Da ist nun mein Problem.
Das, was in der funktionsdatei steht sieht bisher so aus:
Code:
package my.TestFrame;

/**
*
* @author ich
*/

public class functions {
   
    /** Creates a new instance of functions */
  int anmeldung()
 
  {
     TestFrame.status.setText("hey");
     
  }

 
   



}


Da ich auf das Textfeld "status" zugreifen will, welches in TestFrame deklariert ist, kann ich nicht drauf zugreifen.
Der Compiler meint, das das Element "private" ist.

Kann ja sein, aber trotzdem möchte ich drauf zugreifen um den Text auszugeben.

Wie mache ich das?

Ich hoffe Ihr könnt mir helfen, Grüße Mondmann
 
Auf private Elemente kannst du nicht zugreifen. Das lässt sich (zum Glück) auch nicht ändern. Du änderst das Element in der Klasse TestFrame auf public oder schreibst eine get Methode die du dann public machst. Auf jeden Fall empfehle ich Dir eine grafische Oberfläche fürs erste von Hand zu erstellen und auf den GUI Builder zu verzchten. Das ist sehr lehrreich am Anfang. Ach ja, Klassennamen werden in Java grundsätzlich gross geschrieben.
 
es ist allgemein üblich Instanzvariable nur über Methoden zu setzen/lesen. Diese Methoden:

Object getStatus() und setStatus(Object status) können dan durchaus public sein. Ein Zugriff auf die private-Variable ist somit auf diese beiden Werkzeuge festgelegt.

Es ist dabei üblich die Setter/Getter immer nach dem gleichen Schema zu bennen:

int zahl;

int getZahl()
void setZahl( int neuwert)

IDEs wie Eclipse und Netbeans machen das übrigens automatisch wenn Du die Variable mit der Maus selektierst und dann Refactor-Encapsulate Fields wählst. Die Setter/Getter werden dann für alle Variablen in der Markierung in der Klasse erstellt!
 
Eine gute Quelle für Java ist übrigens die berühmte Java-Insel:

Javainsel
 
Ich hätte jetzt auch get und set gesagt
 
Ok vielen Dank mal, dann werd ich mich mal durchwühlen.
Ich denke irgendwie immer noch zu C++ - Mäßig:)

Grüße Mondmann
 
Zurück
Oben Unten