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

    [Java] Caret e jtextfield

    Salve,

    attualmente per cambiare il tipo di cursorse ad ogni jtextfield uso questo codice :

    codice:
    jtextfield1.setCaret(new CaretPersonale());
    jtextfield2.setCaret(new CaretPersonale());
    jtextfield3.setCaret(new CaretPersonale());
    di conseguenza per ogni jtextfield apro un istanza della classe CaretPersonale

    c'è un modo per aprire una sola istanza della classe CaretPersonale e farlo valere per tutti i jtextfield senza doverli settare uno per uno?

    ho pensato a UIManager con un comando simile a questo :
    UIManager.put ("Caret", new CaretPersonale());

    ma non funziona, idee?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

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

    Re: [Java] Caret e jtextfield

    Originariamente inviato da JunkyFunki
    ho pensato a UIManager con un comando simile a questo :
    UIManager.put ("Caret", new CaretPersonale());
    Dalla documentazione che ho, non mi risulta che ci sia una property "Caret". Esistono delle property come ad esempio "TextField.caretBlinkRate" o "TextField.caretForeground" ma come puoi immaginare non cambiano il caret in sé.

    Una possibile soluzione è quella di estendere JTextField facendo in modo che per default venga impostato il "tuo" caret. Tanto il text field va comunque istanziato, no? Che tu faccia new JTextField() o new MyCaretTextField() non penso che cambi molto.

    Altrimenti bisognerebbe andare ad indagare meglio nei meandri di Swing per vedere se ci sono altre soluzioni.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [Java] Caret e jtextfield

    Originariamente inviato da andbin
    Dalla documentazione che ho, non mi risulta che ci sia una property "Caret". Esistono delle property come ad esempio "TextField.caretBlinkRate" o "TextField.caretForeground" ma come puoi immaginare non cambiano il caret in sé.

    Una possibile soluzione è quella di estendere JTextField facendo in modo che per default venga impostato il "tuo" caret. Tanto il text field va comunque istanziato, no? Che tu faccia new JTextField() o new MyCaretTextField() non penso che cambi molto.

    Altrimenti bisognerebbe andare ad indagare meglio nei meandri di Swing per vedere se ci sono altre soluzioni.

    la classe CaretPersonale estende già DefaultCaret, come può estendere anche JTextField?

    se provo ad usare il seguente codice mi dà errore ,

    codice:
    public class CaretPersonale extends DefaultCaret, JTextField {
    ps:
    sai dove posso trovare tutte le proprietà che posso settare con uimanager?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

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

    Re: Re: Re: [Java] Caret e jtextfield

    Originariamente inviato da JunkyFunki
    codice:
    public class CaretPersonale extends DefaultCaret, JTextField {
    Ovviamente no! Intendevo dire definire una "tua" classe che estende JTextField e nel costruttore fa quel set del caret.

    codice:
    public class MyCustomTextField extends JTextField
    {
        public MyCustomTextField ()
        {
            setCaret(new CaretPersonale());
        }
    }
    E poi usi istanze del "tuo" textfield.

    Originariamente inviato da JunkyFunki
    sai dove posso trovare tutte le proprietà che posso settare con uimanager?
    Io ho un libro su Swing ("The Definitive Guide to Java Swing - Third Edition - John Zukowski") che elenca un po' tutte le UIResource (forse non è proprio aggiornatissimo ...).

    Se vuoi vedere quali sono i default prova ad esempio questo codice:

    codice:
    import java.util.*;
    import javax.swing.*;
    
    public class UIDefaultsDump
    {
        public static void main (String[] args)
        {
            UIDefaults defaults = UIManager.getDefaults ();
    
            Enumeration e = defaults.keys ();
    
            while (e.hasMoreElements ())
            {
                Object k = e.nextElement ();
                System.out.println ("\"" + k + "\" = \"" + defaults.get (k) + "\"");
            }
        }
    }
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.