Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    40

    [JAVA] Assegnazione tasto di default in presenza di JTextArea

    Salve ragazzi!
    Ho una JTextArea e un JButton che ho indicato come pulsante di default.
    Ora vorrei che quando premo invio e la JTextArea ha il focus, non vada a capo ma risulti premuto il mio JButton.
    La cosa è fattibile ovviamente se premo CTRL+INVIO, però vorrei che invertire la cosa, ovvero:
    -andare a capo in JTextArea -> CTRL+INVIO
    -premere tasto ->INVIO
    insomma la stessa cosa che accade in una finestra di MSN quando si chatta

    Spero di essere stato chiaro e che qualcuno, nonostante i festeggiamenti in corso, mi dia una mano

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    40
    up

  3. #3
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: [JAVA] Assegnazione tasto di default in presenza di JTextArea

    Originariamente inviato da adino83
    Salve ragazzi!
    Ho una JTextArea e un JButton che ho indicato come pulsante di default.
    Ora vorrei che quando premo invio e la JTextArea ha il focus, non vada a capo ma risulti premuto il mio JButton.
    La cosa è fattibile ovviamente se premo CTRL+INVIO, però vorrei che invertire la cosa, ovvero:
    -andare a capo in JTextArea -> CTRL+INVIO
    -premere tasto ->INVIO
    insomma la stessa cosa che accade in una finestra di MSN quando si chatta

    Spero di essere stato chiaro e che qualcuno, nonostante i festeggiamenti in corso, mi dia una mano
    usa un keyListener http://java.sun.com/j2se/1.4.2/docs/...yListener.html

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    No, basterebbe modificare la Keymap della JTextArea. Avevo fatto un esempio in questa discussione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Se si vuole fare in modo che in una JTextArea:
    • CTRL+INVIO inserisca un newline
    • INVIO da solo faccia "qualcosa" di particolare

    si può fare così:

    codice:
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.text.*;
    
    ....
    
    Keymap keyMap = textArea.getKeymap ();
    
    keyMap.addActionForKeyStroke (KeyStroke.getKeyStroke (KeyEvent.VK_ENTER, InputEvent.CTRL_DOWN_MASK),
                                  new DefaultEditorKit.InsertBreakAction ());
    keyMap.addActionForKeyStroke (KeyStroke.getKeyStroke (KeyEvent.VK_ENTER, 0),
                                  new EnterAction ());
    
    
    ....
    
    private class EnterAction extends AbstractAction
    {
        public void actionPerformed (ActionEvent e)
        {
            // ..... fai qualcosa per INVIO ....
        }
    }
    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
    Registrato dal
    May 2007
    Messaggi
    40
    Funziona, ti ringrazio!

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.