Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16

Hybrid View

  1. #1
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    Sempre lo stesso errore?

    A me funziona alla perfezione... Puoi postare il codice completo? (usando il tag CODE e QUOTE, grazie)
    Eccolo
    codice:
            JMenuItem buttons = new JMenuItem("Edit buttons");
            buttons.addActionListener(new ActionListener()
            {
                @Override
                public void actionPerformed(ActionEvent e)
                {
                    final JFrame f = new JFrame();
                    f.setLocation(200, 100);
                    f.setAlwaysOnTop(true);
                    f.setSize(200, 500);
                    f.getRootPane().setBorder(new MatteBorder(8, 8, 8, 8, Color.BLUE));
                    f.setUndecorated(true);
    
    
                    JPanel p = new JPanel();
                    p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
                    f.add(p);
                    
                    //page buttons
                    JPanel pNextPage = new JPanel();
                    pNextPage.setSize(200, 50);
                    JLabel lNextPage = new JLabel("Next page");
                    final JButton bNextPage = new JButton(KeyEvent.getKeyText(pref.getKey(0)));
                    pNextPage.add(lNextPage);
                    pNextPage.add(bNextPage);
                    p.add(pNextPage); 
                    
                    JPanel pPrevPage = new JPanel();
                    pPrevPage.setSize(200, 50);
                    JLabel lPrevPage = new JLabel("Previous page");
                    JButton bPrevPage = new JButton(KeyEvent.getKeyText(pref.getKey(1)));
                    pPrevPage.add(lPrevPage);
                    pPrevPage.add(bPrevPage);
                    p.add(pPrevPage);
    
    
                    JPanel pFirstPage = new JPanel();
                    pFirstPage.setSize(200, 50);
                    JLabel lFirstPage = new JLabel("First page");
                    JButton bFirstPage = new JButton(KeyEvent.getKeyText(pref.getKey(2)));
                    pFirstPage.add(lFirstPage);
                    pFirstPage.add(bFirstPage);
                    p.add(pFirstPage);
                
                    JPanel pLastPage = new JPanel();
                    pLastPage.setSize(200, 50);
                    JLabel lLastPage = new JLabel("Last page");
                    JButton bLastPage = new JButton(KeyEvent.getKeyText(pref.getKey(3)));
                    pLastPage.add(lLastPage);
                    pLastPage.add(bLastPage);
                    p.add(pLastPage);
    
    
                    //scroll buttons
                    JPanel pUpScroll = new JPanel();
                    pUpScroll.setSize(200, 50);
                    JLabel lUpScroll = new JLabel("Up scroll");
                    JButton bUpScroll = new JButton(KeyEvent.getKeyText(pref.getKey(4)));
                    pUpScroll.add(lUpScroll);
                    pUpScroll.add(bUpScroll);
                    p.add(pUpScroll);
                    
                    JPanel pDownScroll = new JPanel();
                    pDownScroll.setSize(200, 50);
                    JLabel lDownScroll = new JLabel("Down scroll");
                    JButton bDownScroll = new JButton(KeyEvent.getKeyText(pref.getKey(5)));
                    pDownScroll.add(lDownScroll);
                    pDownScroll.add(bDownScroll);
                    p.add(pDownScroll);
                    
                    JPanel pLeftScroll = new JPanel();
                    pLeftScroll.setSize(200, 50);
                    JLabel lLeftScroll = new JLabel("Left scroll");
                    JButton bLeftScroll = new JButton(KeyEvent.getKeyText(pref.getKey(6)));
                    pLeftScroll.add(lLeftScroll);
                    pLeftScroll.add(bLeftScroll);
                    p.add(pLeftScroll);
                    
                    JPanel pRightScroll = new JPanel();
                    pRightScroll.setSize(200, 50);
                    JLabel lRightScroll = new JLabel("Right scroll");
                    JButton bRightScroll = new JButton(KeyEvent.getKeyText(pref.getKey(7)));
                    pRightScroll.add(lRightScroll);
                    pRightScroll.add(bRightScroll);
                    p.add(pRightScroll);
                    
                    JPanel pClose = new JPanel();
                    pRightScroll.setSize(200, 50);
                    JButton bClose = new JButton("CLOSE");
                    bClose.addActionListener(new ActionListener()
                    {
                        @Override
                        public void actionPerformed(ActionEvent arg0) 
                        {
                            f.setVisible(false);
                        }
                    });
                    pClose.add(bClose);
                    p.add(pClose);
    
    
                    f.setVisible(true);
                    
                    Action update = new AbstractAction()
                    {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            System.out.println("HELLO!");
                        }
    
    
                    };
                    p.getInputMap().put(KeyStroke.getKeyStroke("F2"), update);
                }
            });

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non mi hai detto se hai ancora lo stesso errore: a me quel codice compila perfettamente (togliendo pref, che non vedo definito...)
    Se hai lo stesso problema di prima ti invito a ricontrollare gli import, probabilmente hai tirato dentro una Action di un package diverso.

    Poi, ovviamente non hai seguito l'esempio che ti avevo linkato:

    Hai impostato la inputMap (anche se in modo errato).. ma dov'è la actionMap?

    Dal sopracitato link:

    codice:
    Action doNothing = new AbstractAction() { 
        public void actionPerformed(ActionEvent e) {         
          //do nothing     
       } 
    };
    
    component.getInputMap().put(KeyStroke.getKeyStroke("F2"), "doNothing");
    component.getActionMap().put("doNothing", doNothing);

    (notare grassetto e corsivo, non li ho messi a caso)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Non ho alcun errore. Non ne ho mai avuti. Semplicemente non accade nulla. pref è l'oggetto di una classe scritta da me, dichiarata e inizializzata a inizio codice.

    ho importato
    import javax.swing.Action;
    import javax.swing.AbstractAction;


    ora ho fatto
    codice:
                    
                    Action update = new AbstractAction()                
                    {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            System.out.println("HELLO!");
                        }
                    };
                    p.getInputMap().put(KeyStroke.getKeyStroke("F2"), "update");
                    p.getActionMap().put("update", update);
    Ma non cambia nulla.

    Siccome non vorrei lasciare nulla al caso, questa action dovrebbe venire lanciata alla pressione di F2 giusto?
    Ultima modifica di microprocessore; 11-08-2014 a 11:29

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Beh, hai detto tu che "anche con AbstractAction non funziona" senza dire altro...

    Ho notato ora guardando meglio il tuo codice: tu imposti l'azione DOPO aver fatto visualizzare la finestra. Sposta il setVisible alla fine: la visualizzazione fa fatta fare solo quando tutto il resto è pronto altrimenti resta inconsistente. Vedrai che ora funziona.

    Comunque sì, F2 attiva l'azione.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Rettifico funziona anche senza spostare setVisible, avevo semplicemente la console coperta.
    Certe volte mi perdo nelle cose più stupide.

    Grazie mille per l'aiuto

  6. #6
    ah ma se invece del tasto F2 volessi scatenare l'action con un tasto qualsiasi e poi accedere al keyCode del tasto cosa dovrei fare?

    EDIT: Risolto, grazie ancora
    Ultima modifica di microprocessore; 11-08-2014 a 12:35

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.