Zugriff auf Objekt einer anderen Klasse

FUT320

Mitglied
Guten Morgen,

ich komm Mal wieder nicht weiter.
Ich habe zurzeit zwei Klassen. Klasse 1 (Eingabe_oeffnen) ist nur ein Dialog mit Textfeldern, in welche Daten eingetragen werden. Klasse 2 ist ein Nummernblock, mit welchem Zahlen in ein Textfeld (Klasse 1) eingetragen werden können. Als Test habe ich versucht, den Inhalt von dem Textfeld in Klasse 1 in das Textfeld von Klasse 2 zu übertragen (tlPersnr = txtZahl). Das funktioniert aber nicht. Es erscheint kein Fehler o.ä. aber Textfeld "txtZahl" bleibt leer.

Klasse 1

Java:
public class Eingabe_oeffnen implements ActionListener {
 
    public JTextField txtPersnr = new JTextField(3);
 
    public void actionPerformed(ActionEvent eingabeoeffnen) {
     

    JPanel pnlEingabe = new JPanel();
        pnlEingabe.setBackground(Color.WHITE);
        pnlEingabe.setLayout(null);
 
    JDialog dlgEingabe = new JDialog();
        dlgEingabe.setTitle("Erfassung");
        dlgEingabe.add(pnlEingabe);
        /*dlgEingabe.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);*/
        dlgEingabe.setSize(800,800);
     
    JTextField txtUeberschriftEingabe = new JTextField("Sichtungsergebnisse",20);
        pnlEingabe.add(txtUeberschriftEingabe);
        txtUeberschriftEingabe.setBorder(BorderFactory.createEmptyBorder());
        txtUeberschriftEingabe.setBackground(Color.WHITE);
        txtUeberschriftEingabe.setEditable(false);
        txtUeberschriftEingabe.setBounds(10,10,460,80); 
        txtUeberschriftEingabe.setFont(new Font("headline",20,30));
     
    Date zeit = new Date();
    SimpleDateFormat aktuell = new SimpleDateFormat("dd.MM.yyyy");
    JFormattedTextField txtDatum = new JFormattedTextField();
        txtDatum.setText(aktuell.format(zeit));
        pnlEingabe.add(txtDatum);
        txtDatum.setBounds(160,90,80,30);
     
    JTextField beschriftungDatum = new JTextField("Erfassungsdatum");
        pnlEingabe.add(beschriftungDatum);
        beschriftungDatum.setEditable(false);
        beschriftungDatum.setBackground(Color.WHITE);
        beschriftungDatum.setBorder(BorderFactory.createEmptyBorder());
        beschriftungDatum.setFont(new Font("Titel",10,15));
        beschriftungDatum.setBounds(20,90,120,30);
 
 
    JButton btnDatum = new JButton("Datum");
        pnlEingabe.add(btnDatum);
        btnDatum.setBounds(260,90,80,30);
        btnDatum.addActionListener(new Kalender());
             
    JTextField tlPersnr = new JTextField("Personalnummer");
        pnlEingabe.add(tlPersnr);
        tlPersnr.setEditable(false);
        tlPersnr.setBackground(Color.WHITE);
        tlPersnr.setBorder(BorderFactory.createEmptyBorder());
        tlPersnr.setFont(new Font("Titel",10,15));         
        tlPersnr.setBounds(20,130,120,30);
 
     
     
        pnlEingabe.add(txtPersnr);
        txtPersnr.setBounds(160,130,80,30);
        txtPersnr.addMouseListener(new Nummernblock());
        txtPersnr.setText("8");
             
        dlgEingabe.setVisible(true);
     
    } 
}

Klasse 2

Java:
public class Nummernblock extends Eingabe_oeffnen implements MouseListener  {
 
    public void mouseClicked(MouseEvent a) {
    JPanel pnlZahlenblock = new JPanel();
    pnlZahlenblock.setBackground(Color.WHITE);
    pnlZahlenblock.setLayout(null);
 
    JTextField txtZahl = new JTextField();
    pnlZahlenblock.add(txtZahl);
    txtZahl.setBounds(50,10,270,30);
    String tmp = txtPersnr.getText();
    txtZahl.setText(tmp);
 
                 
    JDialog dlgNummer = new JDialog();
    dlgNummer.add(pnlZahlenblock);
    dlgNummer.setTitle("Nummernblock");
    dlgNummer.setSize(380,400);
    /*dlgNummer.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);*/
    dlgNummer.setResizable(false);
     
    dlgNummer.setVisible(true);
    }
  
    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub
    }

}

Ich bin für alle Tipps dankbar!
 
Zuletzt bearbeitet von einem Moderator:

Madlip

Bekanntes Mitglied
Verwirrend.

Änder mal bitte folgendes in deiner EingabeOeffnen-Klasse

Code:
pnlEingabe.add(txtPersnr);
txtPersnr.setBounds(160,130,80,30);
txtPersnr.setText("8");
txtPersnr.addMouseListener(new Nummernblock());

vorher hast du den Listener hinzugefügt und dann den Text gesetzt, sprich wo du ihn setzt ist dem Listener nicht bekannt was im Textfeld drin steht. Erst den Text setzen und dann den Listener zuweisen. So sollte es nun laufen.
 

Madlip

Bekanntes Mitglied
Ich bin mir nicht sicher, (wie gesagt sehr verwirrend alles) Ich glaube du hast da eine Zirkulation drin -> StackOverflow-Exception.
 

FUT320

Mitglied
Aber müsste es dann nicht einen Fehler anzeigen?
Was meinst du genau mit verwirrend, meinen Code und/oder die Fragestellung? Falls dir irgendetwas ins Auge sticht, was ich besser lösen könnte, bitte immer raus damit.
 

Madlip

Bekanntes Mitglied
Starte das ganze mal im Debugger ... ja, ich bin mir wegen der Struktur der Klasse nicht ganz sicher. Ich hätte das eventuell etwas anders aufgebaut, da ich aber dein Programm nicht kenne, kann ich jetzt schlecht Tipps geben.
 

FUT320

Mitglied
Hallo,
da ich mit meiner bisherigen Vorgehensweise nicht weiter kam, habe ich mich Mal an den Get-/Set Methoden versucht.

Klasse 1
Java:
Klasse 1

public class Eingabe_oeffnen implements ActionListener   {
   
    private JTextField txtPersnr = new JTextField("hallo");
       
    public void setTxtPersnr(JTextField neu1){
        txtPersnr = neu1;}
   
    public JTextField getTxtPersnr(){
        return txtPersnr;}
 
    public void actionPerformed(ActionEvent eingabeoeffnen) {
   
    GridLayout gdl = new GridLayout(0,2);   
    JPanel pnlEingabe = new JPanel();
        pnlEingabe.setBackground(Color.WHITE);
        pnlEingabe.setLayout(gdl);
        dlgEingabe.setTitle("Erfassung");
        dlgEingabe.add(pnlEingabe);
        dlgEingabe.setSize(800,800);
       
    JTextField beschriftungDatum = new JTextField("Erfassungsdatum");
        beschriftungDatum.setEditable(false);
        beschriftungDatum.setBackground(Color.WHITE);
        beschriftungDatum.setFont(new Font("Titel",10,15));   
       
    Date zeit = new Date();
        SimpleDateFormat aktuell = new SimpleDateFormat("dd.MM.yyyy");
        JFormattedTextField txtDatum = new JFormattedTextField();
            txtDatum.setText(aktuell.format(zeit));
            txtDatum.addMouseListener(new Kalender());

    JTextField tlPersnr = new JTextField("Personalnummer");
        tlPersnr.setEditable(false);
        tlPersnr.setBackground(Color.WHITE);
        tlPersnr.setFont(new Font("Titel",10,15));           
       
        txtPersnr.addMouseListener(new Nummernblock());
   
    JTextField beschriftungProdDatum = new JTextField("Produktionsdatum");
        beschriftungDatum.setEditable(false);
        beschriftungDatum.setBackground(Color.WHITE);
        beschriftungDatum.setFont(new Font("Titel",10,15));   
       
    JTextField prodDatum = new JTextField();
        prodDatum.setBackground(Color.WHITE);
        prodDatum.addMouseListener(new Kalender());
       
    JTextField beschriftungAnlage = new JTextField("ANlage");
        beschriftungAnlage.setEditable(false);
        beschriftungAnlage.setBackground(Color.WHITE);
        beschriftungAnlage.setFont(new Font("Titel",10,15));   
       
    pnlEingabe.add(beschriftungDatum);
    pnlEingabe.add(txtDatum);
    pnlEingabe.add(tlPersnr);
    pnlEingabe.add(txtPersnr);
    pnlEingabe.add(new JTextField ("Artikelnummer"));
    pnlEingabe.add(new JTextField (" "));
    pnlEingabe.add(new JTextField ("Arbeitsauftrag"));
    pnlEingabe.add(new JTextField (" "));
    pnlEingabe.add(beschriftungProdDatum);
    pnlEingabe.add(prodDatum);
        dlgEingabe.setVisible(true);
 
    }   
       
}

Klasse 2
Java:
public class Nummernblock extends Eingabe_oeffnen implements MouseListener  {
    
    Eingabe_oeffnen nummerObjekt = new Eingabe_oeffnen();   
   
    public void mouseClicked(MouseEvent a) {
               
    JPanel pnlZahlenblock = new JPanel();
    pnlZahlenblock.setBackground(Color.WHITE);
    pnlZahlenblock.setLayout(null);

    JButton btn7 = new JButton("7");
    pnlZahlenblock.add(btn7);
    btn7.setBounds(50,50,60,60);
    btn7.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
           
            if(e.getSource () == btn7){
               
                System.out.println("aktueller Wert im TextFeld:" +nummerObjekt.getTxtPersnr().getText());
                nummerObjekt.setTxtPersnr(new JTextField("8"));
                System.out.println("neuer Wert im TextFeld:"+nummerObjekt.getTxtPersnr().getText());

    JDialog dlgNummer = new JDialog();
    dlgNummer.add(pnlZahlenblock);
    dlgNummer.setTitle("Nummernblock");
    dlgNummer.setSize(380,400);
    dlgNummer.setResizable(false);
       
    dlgNummer.setVisible(true);
   
       
    }
   

    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
       
    }

    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
       
    }

    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub
       
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub
       
    }

}

Ich versuche mich etwas verständlicher als bisher auszudrücken. In Klasse 1 habe ich ein Textfeld mit dem Inhalt "hallo", welches sich in einem Dialog befindet. Diesen Inhalt möchte ich über einen Button (btn7) in Klasse 2 auslesen. Das funktioniert auch soweit. Anschließend soll der Wert des Textfeldes neu gesetzt werden - auf 8. Auch das funktioniert. Wie schaffe ich es aber nun, dass das Textfeld in Klasse 1 aktualisiert wird? Nachdem der Button betätigt wurde, soll sich der Wert im Textfeld ändern. Ich möchte es nicht nur in der Konsole ausgeben, sondern es direkt im Dialog sehen. Geht das irgendwie? Über Hilfe wäre ich sehr dankbar!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
M objekt (linkedList) zugriff aus einer anderen klasse Java Basics - Anfänger-Themen 3
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
S Zugriff auf Objekt Java Basics - Anfänger-Themen 5
J get methoden zugriff und objekt erzeugung Java Basics - Anfänger-Themen 30
M MVC - Problem mit Zugriff auf Objekt Java Basics - Anfänger-Themen 4
W OOP Zugriff auf mit Objekt erstellte Struktur Java Basics - Anfänger-Themen 7
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
D OOP Zugriff auf Objekte A in Klasse A aus Objekt B in Klasse B Java Basics - Anfänger-Themen 3
D OOP Zugriff auf eine Klasse aus einem Interface-Objekt Java Basics - Anfänger-Themen 7
C Zugriff auf Objekt in JSP Java Basics - Anfänger-Themen 2
G Zugriff auf JTree-Objekt Java Basics - Anfänger-Themen 2
I Kein Zugriff auf erstelltes Objekt aus anderer Methode Java Basics - Anfänger-Themen 6
C Probleme beim casten und Objekt zugriff Java Basics - Anfänger-Themen 12
P Zugriff auf übergeordnetes-/ Besitzer-Objekt Java Basics - Anfänger-Themen 5
T Zugriff auf umgebendes Objekt mittels Objekt innerer Klasse Java Basics - Anfänger-Themen 2
° Zugriff auf ein Objekt der eigenen Klasse Java Basics - Anfänger-Themen 2
D Zugriff auf ein verschachteltest Objekt Java Basics - Anfänger-Themen 14
M Absturz bei Zugriff auf Objekt-Arrays Java Basics - Anfänger-Themen 4
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
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
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
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
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 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
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
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
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

Ähnliche Java Themen

Neue Themen


Oben