Default Action

Oi Pessoal,

Pergunta rápida: Como definir a ação default para um ENTER em qualquer campo da tela?

(ie: o botão OK agir quando for pressionado o enter)

Valeu,

Basta colocar um input do tipo submit dentro do form html, que vc consegue isto.

[]s, Welington B. Souza

ehehehe a WEB tá forte mesmo agora ao inves de dizer que é web temos que especificar que não é. :shock:

O meu problema é em uma tela Swing :wink:

valeu

OK, smota.

Montei um exemplinho para vc. Segue abaixo o codigo:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;


public class RecebeEnter extends JFrame {

    // classe interna para fazer o tratamento
    // da tecla pressionada
    private class AcaoEnter extends AbstractAction {
        public void actionPerformed(ActionEvent evt) {
            aoPressionaBotaoOK(evt);
        }
    }

    // codigo de tratamento do evento ao clicar o botao OK
    // ou pressionar a tecla enter ...
    protected void aoPressionaBotaoOK(ActionEvent evt) {
        int resposta = JOptionPane.showConfirmDialog(null,
            "Deseja salvar os dados e fechar esta janela",
            "confirmação", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
        if (resposta == JOptionPane.YES_OPTION) {
            // coloque aqui o seu codigo ...
            System.exit(0);
        }
    }

    public RecebeEnter() {
        setTitle("Tratamento da tecla Enter");
        setSize(300, 200);
        // classe anononima para fechar a janela ...
        addWindowListener(new WindowAdapter() {
            public void windowClosing() {
                System.exit(0);
            }
        });
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());

        // associo o evento de pressionar a tecla
        // enter na acao anteriormente instanciada
        AcaoEnter acaoEnter = new AcaoEnter();
        panel.registerKeyboardAction(acaoEnter,
            KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),
            JComponent.WHEN_IN_FOCUSED_WINDOW);

        JLabel labelNome = new JLabel("Nome");
        JTextField textNome = new JTextField();
        GridLayout gridLayout = new GridLayout(6, 1);
        gridLayout.setRows(6);
        JPanel panelControls = new JPanel();
        panelControls.setLayout(gridLayout);
        panelControls.add(labelNome);
        panelControls.add(textNome);
        panel.add(panelControls, "Center");

        JButton okButton = new JButton("OK");
        // classe anonima para tratar o evento de clicar
        // do botao OK ...
        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                aoPressionaBotaoOK(e);
            }
        });
        panel.add(okButton, "South");

        Container contantPane = getContentPane();
        contantPane.add(panel);

    }

    public static void main(String[] args) {
        RecebeEnter frameRecebeEnter = new RecebeEnter();
        frameRecebeEnter.show();
    }

}

[]s, Welington B. Souza