Checkboxarray lässt sich nicht füllen

  • Themenstarter Themenstarter Metilein
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Metilein

Gast
Servus 🙂

einige werden sich denken dass das Thema schon öfters da war, aber ich hab alle themen abgeklappert und versucht aus den Lösungen da bei mir etwas zusammen zu schneidern, leider ohne Erfolg.
Zur Umgebung: Ich Benutze NetBeans 5.0 und jdk 1.5.0.06 ...

Code:
package my.GUI;

import javax.swing.JCheckBox;
import my.GUI.SIPstring;

/**
 *
 * @author  jbernhardt
 */
public class GUI extends javax.swing.JFrame {
    
    /** Creates new form GUI */
    public GUI() {
        initComponents();
    }


private void initComponents() {
        box_d = new javax.swing.JCheckBox();
        box_G = new javax.swing.JCheckBox();
        box_i = new javax.swing.JCheckBox();
        box_L = new javax.swing.JCheckBox();
        box_n = new javax.swing.JCheckBox();
        box_N = new javax.swing.JCheckBox();
        box_R = new javax.swing.JCheckBox();
        box_S = new javax.swing.JCheckBox();
        box_V = new javax.swing.JCheckBox();
        box_v = new javax.swing.JCheckBox();
        box_w = new javax.swing.JCheckBox();
        box_z = new javax.swing.JCheckBox();
}

private void createString(java.awt.event.MouseEvent evt) {                              
// TODO add your handling code here:
       paraless_add(paraless);
    }

public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new GUI().setVisible(true);
            }
       });
    }
    
    public void paraless_add(JCheckBox[] temp) {
    for (int i=0; i<temp.length; i++)
    {
        if (temp[i] == null)
        System.out.println("keine checkbox");
    }

public javax.swing.JCheckBox box_G;
public javax.swing.JCheckBox box_L;
public javax.swing.JCheckBox box_N;
public javax.swing.JCheckBox box_S;
public javax.swing.JCheckBox box_V;
public javax.swing.JCheckBox box_d;
public javax.swing.JCheckBox box_i;
public javax.swing.JCheckBox box_n;
public javax.swing.JCheckBox box_v;
public javax.swing.JCheckBox box_w;
public javax.swing.JCheckBox box_z;
public JCheckBox[] paraless = { box_d, box_G, box_i, box_L, box_n, box_N, box_S, box_V, box_v, box_w, box_z};
}

Als ausgabe in NetBeans kommt: 11 mal
keine checkboxen

Die zeilen für das neue anlegen von CheckBoxen (box_d = new javax.swing.JCheckBox()😉 sowie public javax.swing.JCheckBox box_d; kann ich in NetBeans nicht einfach so im Code ändern

Ich find da einfach kein Fehler :autsch:
Das einzige was mir einfällt das wenn ich das Array übergebe es ne Kopie/Referenz sache is

Hoffe mir kann einer helfen :toll:
 
Umständlicher kann man das ja nichtmehr machen 🙂

Code:
JCheckBox[] boxArray = new JCheckBoxk[10];

for(int i=0; i<boxArray.length; i++)
  boxArray[i] = new JCheckBox();
 
Metilein hat gesagt.:
Das einzige was mir einfällt das wenn ich das Array übergebe es ne Kopie/Referenz sache is

Genau: das Array wird direkt bei der Deklaration zugewiesen und enthält dann die durch die Variablen box_xx in diesem Moment adressierten Objkete (also null). Wenn dann später die box_xx initialisiert werden, ändert das am Array. Wenn Du aber die Initialisieriung des Arrays am Ende von intitComponents machst, sollte es gehen.

Code:
private void initComponents() {
        box_d = new JCheckBox();
        box_G = newJCheckBox();
        box_i = new JCheckBox();
        box_L = new JCheckBox();
        box_n = new JCheckBox();
        box_N = new JCheckBox();
        box_R = new JCheckBox();
        box_S = new JCheckBox();
        box_V = new JCheckBox();
        box_v = new JCheckBox();
        box_w = new JCheckBox();
        box_z = new JCheckBox();

        paraless = new JCheckBox[]{ box_d, box_G, box_i, box_L, box_n, box_N, box_S, box_V, box_v, box_w, box_z};
}

OT: Wenn Du javax.swing.JCheckBox importierst, dann kannst/solltest Du im Code den abgekürzten Namen verwenden.
 
@Sebastian: Naja, die Funktion InitComponent() macht mir NetBeans von allein hin
und das ewiglange unten auch
weiß atm nicht ob ich das editieren kann, weil einfach reinschreiben kann ich nix (in den Part)

Thx für dein Code, aba hilft mir in dem Sinne nicht, da ich auch wenns umständlich is, mein Code behalten will da er sowieso von NetBeans eingefügt wird

@ Murray: hmm müsst ich nur noch rausfinden wie ich in die InitComponents() etwas schreiben darf ... darf ich von NetBeans aus net 🙁
 
Wenn Du das im initComponents nicht einbauen kannst, dann mach das halt irgendwo anders; es muss nur vor der ersten Verwendung sein.

Bsp:
Code:
private void createString(java.awt.event.MouseEvent evt) {                             
// TODO add your handling code here:
       if ( paraless == null) paraless = new ....;
       paraless_add(paraless);
}

Noch besser: Du spendierst eine Methode getParaless:
Code:
private JCheckBox[] getParaless() {                             
       if ( paraless == null) paraless = new ....;
       return paraless;
}
und verwendest da, wo Du jetzt direkt paraless verwenden würdest, diesen Getter:
Code:
private void createString(java.awt.event.MouseEvent evt) {                             
// TODO add your handling code here:
       paraless_add( getParaless());
}
 
Ok, ich hab etz mein NetBeans auseinanderegenommen und es geschaft dein Vorschlag zu implementieren Murray

und es läuft

Vielen Dank =)
 
Metilein hat gesagt.:
die Funktion InitComponent() macht mir NetBeans von allein hin und das ewiglange unten auch
...
weil einfach reinschreiben kann ich nix
...
mein Code behalten will da er sowieso von NetBeans eingefügt wird
...
darf ich von NetBeans aus net 🙁

Genau deshalb liebe ich diese GUI-Builder in IDEs so :autsch:


[schild=3 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Zutritt für GUI-Builder VERBOTEN!!![/schild]
 
Naja dafür übernimmt NetBeans für mich ca. Code in Gesamtlänge von min. 6 Seiten, und das Hauptsächlich Style, weil bis de in Eclipse oder so nen Fenster mit Radiobuttons und text usw. da hast wo du haben willst wirste blöd :autsch:

OT: btw Leroy, spielste WoW? 😀😀
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben