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

    Inserire Jradio Button In Jlist

    Salve a tutti ragazzi avrei bisogno di un aiuto,

    come da titolo avrei bisogno di inserire in una jlist dei jradioButton , ho provato a fare come facevo con le stringhe ma mi aggiunge alla lista la descrizione dell'bottone

    Questa è la parte di codice interessata

    DefaultListModel model = new DefaultListModel();
    listaImpiantiProp.setModel(model);
    JRadioButton bt = new JRadioButton("bott");
    model.addElement(bt);

    e nella lista aggiunge questo:

    javax.swing.JRadioButton[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.5.... etc etc

    Grazie anticipatamente per l'aiuto ciao a tutti

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

    Re: Inserire Jradio Button In Jlist

    Originariamente inviato da mharck87
    Salve a tutti ragazzi avrei bisogno di un aiuto,

    come da titolo avrei bisogno di inserire in una jlist dei jradioButton , ho provato a fare come facevo con le stringhe ma mi aggiunge alla lista la descrizione dell'bottone
    Eh no. JList per la visualizzazione delle celle si basa su un "renderer" (un oggetto che deve implementare javax.swing.ListCellRenderer).

    L'obiettivo di un renderer è di fornire un Component che sarà poi "stampato" (a mo' di "timbro" o stampino, chiamalo come vuoi) su ogni cella di JList. Chiaramente il renderer, quando viene invocato il suo getListCellRendererComponent prima prepara il componente prendendo in considerazione ovviamente il value della cella ma anche altre informazioni.

    Il renderer predefinito per JList fa una cosa molto banale. Restituisce un JLabel che contiene il testo derivato pedestremente dalla invocazione di toString() sul Object nella cella.

    Anche ammesso di implementare un apposito renderer per visualizzare dei JRadioButton, quelli che poi vedi nelle celle NON sono "veri" JRadioButton ma solo una loro proiezione/stampa. Funziona così ....

    E a differenza di JTable che prevede anche gli "editor", in JList c'è un solo renderer e niente editor. Vuol dire che di serie non potrai interagire con i radio button.

    Una cosa che si potrebbe fare è registrare un MouseListener sul JList, quindi al click andare a scoprire su quale cella (il suo indice) cade l'evento e andare a modificare il model in modo che il renderer faccia cambiare di stato il radio button.
    Ma se speri di poter gestire il click solo nel cerchietto del radio button .... la vedrei un po' dura (ma forse non impossibile ... non ci ho mai provato).

    Spero di averti fatto capire che dietro JList c'è abbastanza roba non banale.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    ho capito che per fare quello che ho in mente forse è meglio cambiare strategia

    avevo optato per questa perchè devo gestire la possibilità di selezionare più oggetti da una lista ,ed il numero di oggetti cambia, con Jlist non mi permette di farlo a meno che non premo ctrl ma l'applicazione deve girare su un tablet quindi selezionati tramite touch ed ecco che non posso selezionare più oggetti con ctrl.

    hai per caso un suggerimento su come selezionare più oggetti contemporaneamente ?

    ti ringrazio ciao

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mharck87
    avevo optato per questa perchè devo gestire la possibilità di selezionare più oggetti da una lista ,ed il numero di oggetti cambia
    Allora innanzitutto per una selezione multipla un "radio button" concettualmente non andrebbe comunque bene. I radio button (che sia Java o una pagina web o altro) si usano quando si deve gestire una mutua esclusione, 1 solo tra N selezionabili. Per selezioni multiple ci sono i "check box" (quelli quadrati).

    Se puoi cambiare componente potresti utilizzare JTable con 2 colonne: una con un checkbox, l'altra con la informazione. Con JTable, mettere un JCheckBox in una colonna viene molto facile e pulito.

    Originariamente inviato da mharck87
    con Jlist non mi permette di farlo a meno che non premo ctrl ma l'applicazione deve girare su un tablet quindi selezionati tramite touch ed ecco che non posso selezionare più oggetti con ctrl.

    hai per caso un suggerimento su come selezionare più oggetti contemporaneamente ?
    Se scegli di usare JList, qualcosa si può fare ma dovresti precisare come vuoi gestire le modifiche alla selezione.
    Ad esempio: ogni click seleziona o deseleziona (fa da "toggle")?. Oppure seleziona solo?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    avevo in mente che ogni click seleziona o deseleziona, se mi potresti suggerire come fare te ne sarei grato.

    ad ogni modo ora provo anche con la jtable e vedo come viene.

    ti ringrazio per i tuoi suggerimenti ciao.

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.