Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160

    Problema con una JPasswordField

    Ciao,

    sto lavorando su una macchina Mac per modificare un'applicazione fatta in java con la 1.5.
    Sì, l'applicazione è sempre la stessa che m sta facedno sudare da troppo tempo ormai..ma bisogna stare calmi, giusto?

    Dato che con l'editor visuale di NetBeans mi dava errore, ho provato ad aggiungere a mano questo oggetto JPasswrodField, così:

    codice:
    JPasswordField passwordField = new JPasswordField("Hidden Text");
    add( passwordField);
    Ma continua a lanciarmi la stessa eccezione:

    codice:
    xception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: property "echoChar" cannot be set using this method
            at javax.swing.JComponent.setUIProperty(JComponent.java:3876)
            at javax.swing.LookAndFeel.installProperty(LookAndFeel.java:144)
            at apple.laf.CUIAquaPasswordField$CUIAquaPasswordView.setupDefaultEchoCharacter(CUIAquaPasswordField.java:41)
            at apple.laf.CUIAquaPasswordField$CUIAquaPasswordView.<init>(CUIAquaPasswordField.java:34)
            at apple.laf.CUIAquaPasswordField.create(CUIAquaPasswordField.java:28)
            at javax.swing.plaf.basic.BasicTextUI.modelChanged(BasicTextUI.java:589)
            at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.propertyChange(BasicTextUI.java:1691)
            at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
            at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:270)
            at java.awt.Component.firePropertyChange(Component.java:7277)
            at javax.swing.text.JTextComponent.setDocument(JTextComponent.java:412)
            at javax.swing.JTextField.setDocument(JTextField.java:252)
            at javax.swing.plaf.basic.BasicTextUI.installUI(BasicTextUI.java:699)
            at javax.swing.plaf.basic.BasicTextFieldUI.installUI(BasicTextFieldUI.java:57)
            at javax.swing.JComponent.setUI(JComponent.java:653)
            at javax.swing.text.JTextComponent.setUI(JTextComponent.java:298)
            at javax.swing.text.JTextComponent.updateUI(JTextComponent.java:308)
            at javax.swing.text.JTextComponent.<init>(JTextComponent.java:282)
            at javax.swing.JTextField.<init>(JTextField.java:207)
            at javax.swing.JPasswordField.<init>(JPasswordField.java:107)
            at javax.swing.JPasswordField.<init>(JPasswordField.java:66)
            at rubrica.RubricaUI.<init>(RubricaUI.java:39)
            at rubrica.Main$1.run(Main.java:49)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    Qualcuno mi sa spiegare perchè mi genera questa eccezione?
    Per risolverla devo far e ameno di usare questo oggetto JPasswrodField e ricorrere ad un semplice TextField????

    HELP HELP HELP

  2. #2
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    Non riesco proprio a capire dove è il problema per cui anche solo con la creazione dell'istanza mi lancia l'eccezione d cui sopra!!!

    Non è mai capitato a nessuno un problema simile?


  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Hai provato a costruire una JPasswordField vuota (utilizzando il costruttore senza parametri)?

    Non uso JDK1.5 e non ho mai riscontrato questo problema, ma tentar non nuoce.


    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

  4. #4
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    Ho provato, ma niente, mi dà lo stesso errore.

    Ma posso utilizzare un textfield per gestire la password nell'interfaccia grafica? Ed, in questo caso, come posso modificare i caratteri che inserisci l'utente con degli asterischi?


  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Cool81
    Ho provato, ma niente, mi dà lo stesso errore.
    Ne parla in questo bug report.

    Originariamente inviato da Cool81
    Ma posso utilizzare un textfield per gestire la password nell'interfaccia grafica? Ed, in questo caso, come posso modificare i caratteri che inserisci l'utente con degli asterischi?
    Se anche fosse tecnicamente possibile (non lo so), sarebbe comunque non banale e probabilmente non la cosa "pulita" da fare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    Stavo appunto leggendo quel link.

    La soluzione che propone dovrebbe essere questa:

    codice:
    String prefix = getPropertyPrefix();
    Character echoChar = (Character)UIManager.getDefaults().get(prefix + ".echoChar");
    LookAndFeel.installProperty(getComponent(), "echoChar", echoChar);
    Adesso posso:

    1. provare questa soluzione per quanto poco pulita ed, in questo caso, devo capire dove mettere questo codice

    oppure

    2. se il problema dipende dal fatto che sul mac prende il look&feel del sistema operativo, c'è un modo per stabilire un look&feel indipendente dal sistema oeprativo?

  7. #7
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    Ho provato la soluzione proposta dal link indicato prima, cioè quella di fare

    codice:
    JPasswordField.customSetUIProperty()
    Ho provato prima di fare l'istanza e ho provato anche dopo,ma mi dà errore.

    Qualcuno sa dirmi dove devo chiamare questo metodo?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    72
    Hai risolto il problema?
    Ci sarebbe una cosa che potresti provare.. TextField (non JTextField) ha un metodo setEchoChar(char c).. Non è la cosa ideale da fare, ma se tutto il resto non funziona...

  9. #9
    Utente di HTML.it L'avatar di Cool81
    Registrato dal
    Dec 2008
    Messaggi
    160
    Ho risolto questo problema impostando specificatamente un lookAndFeel in modo tale che il Mac non prendesse il suo.

    Ho risolto questo problema, ma ne sono sorti altri epr cui mi viene da aprire una nuova discussione.
    Grazie dell'interessamento!

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.