Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    JComboBox dentro un CELLA di una tabella

    Ciao ragazzi, devo inserire una comboBox dentro una cella di una tabella! non una colonna, solo la cella!
    Sono riuscito ad inserire la comboBox con questo codice:
    codice:
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { 
    if (row == 8 && col == 1) { 
    	Vector<String> v = (Vector<String>) value; 
    	String[] s = new String[v.size()];  
    	for(int i=0; i<v.size(); i++){ 
    		s[i] = v.elementAt(i).getCod_stato(); 
    	}
    	JComboBox cb = new JComboBox(s); 	
    	return cb;
    } 
    }
    ma il problema e che vedo la comboBox ma non funziona! ho dovuto mettere la cella non editabile!

    se non è chiaro posso darvi spiegazioni più dettagliate.

    Grazie ciao!
    /*no comment*/

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JComboBox dentro un CELLA di una tabella

    Originariamente inviato da fgiovanni
    ma il problema e che vedo la comboBox ma non funziona!
    No perché infatti è un renderer .... il componente fornito dal renderer viene proprio solo "stampato". Hai presente quei timbri-datario che hanno le rotelline per cambiare i giorni? Bene: il componente è il timbro ... le rotelline le sue proprietà.
    C'è da visualizzare la cella X? il renderer imposta delle proprietà sul componente-timbro e poi il componente viene "stampato" a video. Per la cella successiva, imposta altre proprietà e viene ristampato poco più in la. E così via ....
    Ciò che vedi a video nelle celle non sono "veri" componenti ... solo una banale "proiezione" dei componenti.

    Originariamente inviato da fgiovanni
    ho dovuto mettere la cella non editabile
    La cella deve essere "editabile" affinchè possa entrare in gioco un "editor".

    Come impostare un ComboBox come editor è spiegato qui. Chiaro ... lo imposta per tutta la colonna. Ma se quella tua cella specifica è l'unica editabile, ti andrebbe assolutamente bene.

    Se invece altre celle nella colonna sono editabili ma tu vuoi che solo una cella specifica venga editata con un combo box ..... beh, le cose cambiano.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok hai ragione!

    l'articolo che hai postato già lo visto ma non risolve i miei problemi perchè li si parla di colonne. Il problema e che io ho varie celle editabili e una deve contenere una combobox. Puoi darmi una dritta su cosa devo fare? Grazie ancora.
    /*no comment*/

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fgiovanni
    Il problema e che io ho varie celle editabili e una deve contenere una combobox.
    Allora è l'ultimo caso che dicevo. È un po' più complesso e personalmente non ho mai dovuto farlo (e ora non ho tempo di documentarti e/o fare delle prove).

    Comunque vedi prepareEditor() di JTable .... in questo caso dovresti estendere JTable e fornire tu un apposito componente solo per una certa cella.

    Appena ho tempo faccio qualche prova, giusto per confermare o smentire quanto ho appena detto!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.