Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    50

    [java] Convertire string to Object per jComboBox

    Scusate dovrei gestire circa 10 checkBox tramite un for

    come faccio a rendere il nome della checkBox generico..

    vorrei gestire le checkBox assegnandogli dinamicamente tramite un for il suffisso esempio :

    jcheckBox1, jcheckBox2, jcheckBox3 .....................

    tramite un for

    grazie mille

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    1) Leggere il Regolamento: il titolo non è conforme (non hai proprio specificato alcun titolo)
    2) Per fare ciò che chiedi esistono gli array:
    codice:
    JCheckBox mieCheck = new JCheckBox[ quante_ne_vuoi ];
    for(int x=0; x<mieCheck.length; x++) mieCheck[x] = new JCheckBox( ... );
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    50

    [java] Convertire string to Object per jComboBox

    Grazie della risposta.. però il codice che mi hai consigliato è per la creazione delle checkBox.

    Il mio problema è un altro: le checkbox le ho già create (con un editor, visto che devono essere piazzate in una parte esatta dello schermo), però, visto che ne devo gestire parecchie, vorrei selezionarle tutte con un solo for.

    Il problema che mi si pone, è che non posso utilizzare le stringhe per identificare le checkBox nel for.

    Esempio:

    // Per fare il select-all:
    for (int i=0; i<10; i++) {
    jComboBox+i.isSelected(true); oppure jComboBox[i].isSelected(true);
    }

    Grazie mille per l'aiuto.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Dal codice che hai postato non mi è molto chiaro quello che intendi fare con le JCheckBox, ad ogni modo il tuo problema si risolve in tre modi:

    1) Ti crei le JCheckBox a mano via codice come ti ho mostrato prima
    2) Controlli se l'editor che stai usando prevede un meccanismo per fargli sapere che un gruppo di componenti devono essere trattati tramite un array (in VB, ad esempio, aggiungendo al nome un indice, viene automaticamente richiesto se si vuole creare una matrice di oggetti)
    3) Utilizzi il metodo getComponents, che restituisce un array di Component e, per ciascuno di essi, testi se è una JCheckBox e, in caso positivo, verifichi se è quella che ti interessa tramite un cast e il relativo metodo getText()... in codice:
    codice:
    Component[] tutti = getComponents();
    JCheckBox tmp = null;
    for(int j=0; j<tutti.length; j++) {
       if (tutti[j] instanceof JCheckBox) {   // Ho trovato una JCheckBox!!
          tmp = (JCheckBox) tutti[i];
          if ( tmp.getText().equals("Quello che hai scritto nella JCheckBox") ) {   // E' la JCheckBox che ti interessa
             ... // Ci fai quello che vuoi
          }
       }
    }
    Il mio consiglio è quello di "scavalcare" l'editor (che come vedi, in questi casi, non porta alcun vantaggio) e di scrivere il codice a mano... altrimenti hai sempre le altre due strade.
    E se la seconda strada non dovesse essere percorribile... beh... vale la pena di perdere tempo a scrivere un codice come quello che ti ho postato per non scavalcare l'edotor?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    50
    Grazie mille, ho risolto con il 3° metodo.

    L'unica cosa che ho fatto è sostituire la riga:

    Component[] tutti = getComponents();

    con

    Component [] tutti = panel1.getComponents(); //ad esempio

    Ciao e grazie di nuovo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.