Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe mal wieder eine Newbie-Frage. Auf meinem JFrame Anzeige habe ich zwei JLabel lbl_1 & lbl_2. In diesen stehen Namen drin. Jetzt merke ich beim arbeiten, dass ich einen oder beide Namen falsch geschrieben habe und möchte die korrigieren.

Dazu habe ich mir ein zweites JFrame Korrektur gebastelt, dass den Inhalt von lbl_1 & lbl_2 übergeben bekommt und einen Button "Übernehmen" enthält.

p_one = lbl_1.getText();

p_two = lbl_2.getText();

//this.dispose();

P_Card Korrektur= new P_Card(p_one, p_two);

Ich korrigiere jetzt die Namen und beim Drücken des Button "Übernehmen" setze ich in der actionPerformed() Methode von JFrame Korrektur die neuen Werte in Variablen

p_one_change = txt_p_one.getText();

p_two_change = txt_p_two.getText();

Wie bekomme ich jetzt die Werte von p_one_change in lbl_1 und p_two_change in lbl_2 des noch aktiven JFrame Anzeige?

Ich möchte das JFrame Anzeige nicht neu aufbauen, da mir ja dann die Werte flöten gehen, die in anderen JLabel, Textareas etc. eingegeben sind.

Vielen Dank für die Ideen im voraus.

Hallo Natriumarm.

Ich habe das gerade mal lokal getestet mit einem normalen JFrame und 2 JLabels. Soweit ich das sehe musst du einfach nur den Text im JLabel austauschen und das aktualisiert dann das aktuelle JFrame auf den neuen Wert, sofern du eine "ControllerKlasse" hast, die Zugriff auf beide JFrames ermöglicht. Zur Not gibt es noch die Funktion JFrame.repaint().

Ich hoffe das konnte dir helfen.

Mfg

Chris

Bearbeitet von hbspike

  • Autor

Eine Controllerklasse existiert nicht. Werd mich mal schlau machen, wie und ob ich das für mein Projekt sinnvoll einbauen kann.

Wenn ich das Programm starte, starte ich ein minimalistisches JFrame, geb dort bissl was ein, übergebe das alles an das JFrame Anzeige und dann gehts los mit den eigentlichen Eingaben.

Stand momentan würde das also nicht funktionieren. Hab auch überlegt, ob ich ein MessageDialog nutzen könnte. Wäre ja aus funktionaler Sicht auch vollkommen ausreichend.

Danke trotzdem.

Also ist das Problem das du nicht vom Korrektur-Frame auf das Anzeige-Frame zugreifen kannst?

Mhh. Das ist natürlich ungünstig. Ich weis nicht inwieweit JFrames untereinander verknüpft werden, da ich annehme das das Korrektur-Frame vom Anzeige-Frame erzeugt wird. Ggf. kannst du dann vielleicht über die Parent-Componente des Korrektur-Frames auf das Anzeige-Frame zugreifen.

  • Autor

Genau das ist mein Problem.

Im Anzeige JFrame rufe ich über ein JMenuItem P_Card Korrektur= new P_Card(p_one, p_two); auf. Dann korrigier ich, schreib die korrigierte Werte aus dem Korrekturframe in Variable und diesen Inhalt möchte ich dann an die Anzeige zurückgeben, damit im lbl_1 und lbl_2 die korrigierten Werte drin stehen.

Dann würde ich mir jetzt die Componenten im Debugger mal anschauen. Vielleicht hast du Glück und das Anzeige-Frame enthält eine Referenz. Ansonsten, mhh. Der Klick auf den Button ist ja ein ActionListener, vielleicht kannst du diesen im Anzeige-Frame zwischenhalten? Wie gesagt so genau kenne ich mich damit nicht aus. ;)

  • Autor

Leider komm ich nicht weiter. Mit dem Debugger erkenne ich nichts, was mich weiter bringt. Wahrscheinlich nutze ich auch nicht alles richtig.

Was mir jetzt noch spontan einfällt. Könnte ich eine Methode in der Anzeige schreiben, die vom Korrektur JFrame aufgerufen wird, in der die Label neu gesetzt werden? Widerspricht wahrscheinlich allen gängigen Richtlinien ;-)

Hat noch jemand Ideen?

Könnte ich eine Methode in der Anzeige schreiben, die vom Korrektur JFrame aufgerufen wird, in der die Label neu gesetzt werden?

Ohne daß es state-of-the-art Design ist, könnte ein gangbarer Weg so sein: Das KorrekturFrame hat eine Referenz auf das Anzeigeframe, welche im Konstruktor KorrekturFrame übergeben wird. Im Anzeigeframe gibt es eine public-Methode, die den Inhalt der Labels setzt.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.