Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Limitare caratteri in JComboBox

    Rieccomi

    Devo limitare i caratteri inseribili in un JComboBox (un po' come ho fatto sui JTextField) ma c'è un problemino... JComboBox non ha setDocument e pertanto non posso usare questa classe:

    codice:
            public class LimitedPlainDocument extends PlainDocument
            {
    
                private int maxSize;
    
                public LimitedPlainDocument(int maxSize)
                {
                    this.maxSize = maxSize;
                }
    
                @Override
                public void insertString(int offs, String str, AttributeSet a)
                        throws BadLocationException
                {
                    if (str == null)
                    {
                        return;
                    }
    
                    if (offs + str.length() > maxSize)
                    {
                        str = str.substring(0, maxSize - offs);
                    }
    
                    super.insertString(offs, str, a);
                }
    
            }
    C'è modo di fare quello che chiedo? :master:
    Ho provato a controllare il JComboEditor ma non c'è nulla :master:

    Grazie
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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

    Re: Limitare caratteri in JComboBox

    Originariamente inviato da Alex'87
    Devo limitare i caratteri inseribili in un JComboBox (un po' come ho fatto sui JTextField) ma c'è un problemino... JComboBox non ha setDocument e pertanto non posso usare questa classe:
    JComboBox usa per default l'editor javax.swing.plaf.basic.BasicComboBoxEditor che fornisce nient'altro che un JTextField come componente per l'edit.

    Quindi ti basta fare:

    codice:
    JTextField textField = (JTextField) comboBox.getEditor().getEditorComponent();
    
    textField.setDocument (.......);
    P.S. Il LimitedPlainDocument che hai postato non è proprio correttissimo. L'hai preso sicuramente da un mio esempio in questa discussione. Inizialmente però l'avevo postato sbagliato ma poi l'avevo corretto, vedi la versione aggiornata.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da andbin
    JComboBox usa per default l'editor javax.swing.plaf.basic.BasicComboBoxEditor che fornisce nient'altro che un JTextField come componente per l'edit.

    Quindi ti basta fare:

    codice:
    JTextField textField = (JTextField) comboBox.getEditor().getEditorComponent();
    
    textField.setDocument (.......);

    Sono un idiota
    È quello che ho fatto solo che invece del cast a JTextField l'ho fatto a TextField


    Grazie

    Originariamente inviato da andbin
    P.S. Il LimitedPlainDocument che hai postato non è proprio correttissimo. L'hai preso sicuramente da un mio esempio in questa discussione. Inizialmente però l'avevo postato sbagliato ma poi l'avevo corretto, vedi la versione aggiornata.
    Sisi, l'ho preso da li.. Adesso sistemo, grazie ancora
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.