COMO CAMBIAR EN TODOS LOS JBUTTON que se ejecuten con BARRA espaciadora y lo haga un enter

he intenado con los eventos de teclado pero ha valido para un solo boton, como seria posible hacerlo por defecto en mi aplicacion java???'

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

No esta muy claro lo que

No esta muy claro lo que preguntas.

Quieres que cuando se presione la barra espaciadora se presione un enter en los jbuttons?

Podrias volver a escribir tu pregunta.

OscarRyz

los Jbutton por defecto se ejecutan al presionar la barra espaciadora, lo que me interesa es que no sea asi, sino que se ejecute por defecto con la tecla enter

Ah vaya, Al parecer todo

Ah vaya,

Al parecer todo esta en el InputMap que se consigue en la clase UIManager

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Ejemplo {
   public static void main( String ... args ) {
      setupEnterActionForAllButtons();
      JPanel panel = new JPanel();
      panel.add(newJButton("Uno"));
      panel.add(newJButton("Dos"));
      panel.add(newJButton("Tres"));

      JFrame frame = new JFrame();

      frame.add(panel);
      frame.pack();
      frame.setVisible( true );
   }
   private static JButton newJButton( String text ) {
      JButton jbutton = new JButton( text );
      jbutton.addActionListener( new PrintOnAction() );
      return jbutton;
   }
   
   private static void setupEnterActionForAllButtons() {
           InputMap im = (InputMap) UIManager.getDefaults().get("Button.focusInputMap");
           Object pressedAction = im.get(KeyStroke.getKeyStroke("pressed SPACE"));
           Object releasedAction = im.get(KeyStroke.getKeyStroke("released SPACE"));

           im.remove(KeyStroke.getKeyStroke("pressed SPACE"));
           im.remove(KeyStroke.getKeyStroke("released SPACE"));

           im.put(KeyStroke.getKeyStroke("pressed ENTER"), pressedAction);
           im.put(KeyStroke.getKeyStroke("released ENTER"), releasedAction);
       }  
}
class PrintOnAction implements ActionListener {
   public void actionPerformed(ActionEvent e) {
      System.out.println(e.getActionCommand());
   }
}

si tu ejemplo me funciona

el ejemplo que das funciona muy bien pero en mi caso no se porque no me funciona.

tengo mi UI:
----------------

//en mi ui tengo esto
public void setControlador(Controlador c)
   
    {
nombredeboton.addActionListener(c);
}

en mi controler tengo esto
public class Controlador  implements ActionListener
{

 public void actionPerformed(ActionEvent e)
    {
       
        if(e.getActionCommand().equals("buscar"))
        {
           
            funcionBuscalgo();
           
        }
}

//en el principal
// por aqui instacion mi controler
miframe.setControlador(control);
 miframe.arranca();

asi manejo los progrmas, trate de colocar tu funcion en mi controler pero no hala el boton que no funcional, osea ni con enter ni barraspaciadora

Tienes que llamar la función

Tienes que llamar la función que habilita el ENTER y el SPACE, lo viste?

setupEnterActionForAllButtons();

si por supuesto

lo que pasa es que tengo este otra funcion que me entra en conflicto con la tuya
lo que hago con esto es que ui que recibe como parametro hace que todos sus elemetos al dar enter gane el foco el siguiente elemento, con esa me ha sido muy util al nnenar formularios ya que termino de digitar doy entre y salta a otro JTEXTfiel o JBUTTON

 public static void nextElementFocus(Object v){
         
          Set<AWTKeyStroke> teclas = new HashSet<AWTKeyStroke>();
          //teclas.add(AWTKeyStroke.getAWTKeyStroke(
               // KeyEvent.VK_ENTER, 0));
        teclas.add(AWTKeyStroke.getAWTKeyStroke(
                KeyEvent.VK_TAB, 0));
       
         // Se pasa el conjunto de teclas al panel principal
        if(v instanceof JInternalFrame)
        {
            JInternalFrame jinternal =(JInternalFrame) v;
            jinternal.getContentPane().setFocusTraversalKeys(
                KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                teclas);
        }
       
       
        else if(v instanceof JFrame){
           
            JFrame jinternal =(JFrame) v;
            jinternal.getContentPane().setFocusTraversalKeys(
                KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                teclas);
         
           
       
        }
      }