Feld übergeben & dann Werte in TextFelder schreiben

Maxi92

Aktives Mitglied
Hi leute!

Hab folgendes Problem:

ich ließ in nem Dialog(MunitionsdurchmesserDlg) 10 verschiedene Durchmesser ein und möchte sie dann in nem JFrame Fenster (ManuellGUI) in die dazugehörigen TextFelder schreiben. Die ganzen TextFelder etc. werden in den InitComponents() deklariert und mit den Werten versehen.
Vom einem weiteren JFrame werden die oben genannten Fenster verwaltet.

Das einlesen der Durchmesser funktioniert aber ich denke das übergeben hat einen Fehler
da im ManuellGUI im Feld überall 0 drinnen steht...sprich der Standardwert...

ich weiß nicht wo der Fehler liegt...wäre dankbar wenn mir wer helfen könnte?

Dialog:

Java:
public class MunitionsdurchmesserDlg extends javax.swing.JDialog
{
    public int[] durchmesser = new int[10];
   
    /** Creates new form MunitionsdurchmesserDlg */
    public MunitionsdurchmesserDlg(java.awt.Frame parent, boolean modal)
    {
        super(parent, modal);
        initComponents();
        super.setLocationRelativeTo(null);
    }
//Zurückgeben der Durchmesser
    public int[] getDurchmesser()
    {
        return durchmesser;
    }           
 
//Einlesen der Durchmesser
    private void onBestaetigenMuDlg(java.awt.event.ActionEvent evt)                                    
    {                                        
        JComboBox[] box = new JComboBox[10];
              
        box[0] = cobØKMuDlg1;
        box[1] = cobØKMuDlg2;
        box[2] = cobØKMuDlg3;
        box[3] = cobØKMuDlg4;
        box[4] = cobØKMuDlg5;
        box[5] = cobØKMuDlg6;
        box[6] = cobØKMuDlg7;
        box[7] = cobØKMuDlg8;
        box[8] = cobØKMuDlg9;
        box[9] = cobØKMuDlg10;
        
        for(int i = 0; i < 10; i++)
        {
            durchmesser[i] = ((box[i].getSelectedIndex()) + 1) * 5;
            System.out.println(durchmesser[i]);
        }
        dispose();
    }                                   

    private void onAbbrechenMuDlg(java.awt.event.ActionEvent evt)                                  
    {                                      
        dispose();
    }
}

ManuellGUI
Java:
public class ManuellGUI extends javax.swing.JFrame
{    
    public int[] durchmesser = new int[10];
    private MunitionsdurchmesserDlg muDlg = new MunitionsdurchmesserDlg(this, true);


    /** Creates new form ManuellGUI */
    public ManuellGUI()
    {
        initComponents();
        super.setLocationRelativeTo(null);
        setDurchmesser();
    }
    
    private void setDurchmesser()
    {
        JTextField[] tfDurchmesser = new JTextField[10];
        durchmesser = muDlg.getDurchmesser();

        tfDurchmesser[0] = tfØKM1;
        tfDurchmesser[1] = tfØKM2;
        tfDurchmesser[2] = tfØKM3;
        tfDurchmesser[3] = tfØKM4;
        tfDurchmesser[4] = tfØKM5;
        tfDurchmesser[5] = tfØKM6;
        tfDurchmesser[6] = tfØKM7;
        tfDurchmesser[7] = tfØKM8;
        tfDurchmesser[8] = tfØKM9;
        tfDurchmesser[9] = tfØKM10;

        for (int i = 0; i < durchmesser.length; i++)
        {
            System.out.println("Durchmesser"+ (i+1) + ": " + durchmesser[i]);
            tfDurchmesser[i].setText(String.format("%d", durchmesser[i]));
        }
    }
}

Klassen der GUI die alles verwaltet

Java:
    private void onMunitionsdurchmesser(java.awt.event.ActionEvent evt)                                        
    {                                            
        MunitionsdurchmesserDlg monDlg = new MunitionsdurchmesserDlg(this, true);
        monDlg.setVisible(true);
    }                                       

    private void onOkBetrieb(java.awt.event.ActionEvent evt)                             
    {                                 
        new ManuellGUI().setVisible(true);
    }
 
> setDurchmesser();
wird anscheinend direkt beim Erstellen des JFrames durchgeführt, der Dialog aber erst später angezeigt und später auch erst etwas eingetippt?
danach müsste dann setDurchmesser() ausgeführt werden, nicht so früh

z.B. am Ende von
> onMunitionsdurchmesser
aufrufen
 
> setDurchmesser();
wird anscheinend direkt beim Erstellen des JFrames durchgeführt, der Dialog aber erst später angezeigt und später auch erst etwas eingetippt?
danach müsste dann setDurchmesser() ausgeführt werden, nicht so früh

also es sieht so aus:

wenn ich mein Hauptfenster starte kommt zuerst ein anmelde Fenster wo der benutzername eingegebn werden muss, damit man stets weis wer im moment mit dem Prog abreitet.

und das 2. was dann gemacht werden muss (hab ich aber noch nicht auscodiert) ist den Dialog
> MunitionsdurchmesserDlg aufrufen!!!

erst wenn die Durchermesser aller Kanonen einmal eingestellt wurden kann man das Fenster > ManuellGUI öffnen --> sprich zu jedem Zeitpunkt wo dieses Fenster geöffnet wird muss das Feld > durchmesser des Dialogs > MunitionsdurchmesserDlg mit den richtigen Werten gefüllt sein.

und nachdem ich übers Hauptfenster jetzt zuerst > onMunitionsdurchmesserDlg und dann erst > onOkBetrieb aufrufe, und dort drinnen ja das JFrame >ManuellGUI aufgerufen wird, muss ja auch da erst/oder erneut der Konstruktor von >ManuellGUI abgearbeitet werden und indem wird ja die private Methode setDurchmesser() aufgerufen.
Das heißt zu einem Zeitpunkt wo in dem Feld was ich übergebe schon Werte stehen...aus irgendeinem Grund übergibt er mir die Werte nur nicht in mein durchmesser Feld des JFrames ManuellGUI???
oder er übergibt sie aber sie werden nicht gespeichert??

hilfe?!?
 
ich hab kaum was verstanden, aber Programmieren ist an sich einfach,
wenn man A aufrufen will, dann ruft man A auf

weder zwingt einen irgendwer irgendwann zu was noch muss xy an Stelle z stehen,
einfach ruhig durchatmen und das machen was zu tun ist,

oder auch ganz langsam einen Schritt nach dem anderen erklären
 
ok! dann war des vl zu kompliziert erklärt...

ich weiß das mich keiner zwingt das genau das dort steht...
ich möchte einfach das feld >durchmesser des Dialogs MunitionsdurchmesserDlg zum JFrame >ManuellGUI
übergeben wird, um dort dann mit den Werten des übergebenen Feldes arbeiten zu können...
des is eig. mei prob wie beim 1. entry schon erwähnt...

der letzte eintrag war a versuch die funktionsweise zu erklären....aber is klar das as unverständlich is...würd mi wahrscheinlich auch net auskennen wenn i des von wem lesen würd wenn ichs net selber programmiert hätt! sorry!
 
Zuletzt bearbeitet:

Zurück
Oben