Textfeld aus constructor füllen

Vermutlich ist nicht nur eine einzelne Component „tot“, sondern das ganze GUI. In der main steht (neben einem Haufen anderem Krempel) das hier:

public static void main(String[] args)
{
    ...
    /* Create and display the form */
    java.awt.EventQueue.invokeLater(() -> {
        new VA_bearbeiten_rmh().setVisible(true);

    });

}

Dort wird der Konstruktor von VA_bearbeiten_rmh aufgerufen, der keine Parameter bekommt: new VA_bearbeiten_rmh(). Und dieses VA_bearbeiten_rmh-Fenster wird dann angezeigt.

Es gibt aber noch den anderen Konstruktor:

public VA_bearbeiten_rmh(String Name2, String BIA, String Ansprechpartner,
    String Kontakt, String Beschreibung, int Status2)
{
    try
    {

        System.out.println(Name2);
        nameVa.setText(Name2);
        nameVa.updateUI();
        nameVa.validate();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

}

und ich nehme an, du hast in irgendeiner anderen Klase jetzt geschrieben…

class AndereKlasse {
    void aktualisiereIrgendwas() {

        new VA_bearbeiten_rmh("DAS_WIRD_AUSGEGEBEN", "", "", "", 123);
    }
}

und DAS_WIRD_AUSGEGEBEN wird auf der Konsole ausgegeben, aber nicht angezeigt. Klar: Das VA_bearbeiten_rmh, das da erstellt wird, wird ja gerade gar nicht auf dem Bildschirm angezeigt. Wenn du in den zweiten Konstruktor mal noch

public VA_bearbeiten_rmh(String Name2, String BIA, String Ansprechpartner,
    String Kontakt, String Beschreibung, int Status2)
{
    initComponents(); // <--- das hier
    ...

dazuschreibst, und den Aufruf (testweise) mal zu

//-----------------------------------------------------------v  sichtbar machen!
new VA_bearbeiten_rmh("DAS_WIRD_AUSGEGEBEN", "", "", "", "", 123).setVisible(true);

änderst, wird das ganze GUI nochmal angezeigt, und in dem Textfeld steht dann auch das richtige drin.


Langer Rede kurzer Sinn: Wenn ihr Swing-Programmierer sucht, die wissen, was sie tun: Für ~80€/Stunde bin ich am Start (oder 120€/Stunde, wenn ich mich mit so einen Murx rumärgern muss, wie den, den du da gerade gepostet hast :no_mouth: )


Die Frage ist jetzt: Wer erstellt dieses VA_bearbeiten_rmh-Fenster? Wer soll den Text im Textfeld ändern? Grundsätzlich ist die Lösung nämlich einfach:

class AndereKlasse {
    private VA_bearbeiten_rmh dasDing;

    void erstelleFenster() {
        dasDing = new new VA_bearbeiten_rmh();
        dasDing.setVisible(true);
    }
    void aktualisiereIrgendwas() {
       dasDing.nameVa.setText("Das hier wird dann auch angezeigt");
    }
}

Das ist ein bißchen, wie wenn man in ein brennendes Haus reinrennt, um das Licht auszuschalten, das man versehentlich angelassen hat, aber … manche Menschen sind schon sehr pragmatisch, was das angeht.