Foro sobre Java SE > Como crear un metodo con parametros void o funcion??
me figuro que te refieres a esto.
public float sumar(float n1, float n2){ //Devuelve un valor
return n1 + n2;
}
public void sumar(){ //No devuelve valor
}
Si es otra cosa dimelo
no lo que me refiero es esto:
public void ejemplo1(//aca dentro poner parametros void ejemplo: Void metodonuevo1){
}
public JButton ejemplo2(JButton BotonAceptar,//aca dentro poner parametros void ejemplo: Void metodonuevo2){
return BotonAceptar
}
quiero saver si se puede... y como seria la forma correcta de hacerla, ya q ando intentando pero no logro me sale errores al declarar asi los metodos...
No entiendo muy bién que quieres hacer. quieres pasar como parametro una objeto de tipo JButton y metodos para que realice una acción ese botón y después devolver el botón?
Dime lo que intentas hacer a ver si te puedo ayudar. pero me parece que lo que intentas en pasar metodos como parametros como en c por medio de un puntero.
lo que estoy haciendo son atajos de teclado....
aca te muestro el codigo:
protected JButton AtajoDeBotones(JButton Boton) {
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
//aca coloco el boton que se ejecutara
JButton1ActionPerformed(null);
}
};
KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_0, 0);
Boton.registerKeyboardAction(actionListener, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
return Boton;
}
como veran el metodo esta echo para un solo boton q a la hora a tecleo 0 se ejecuta el boton 1.... y yo no kiero crear varios metodos para diferentes botones... por eso a ese mismo metodo queria pasarle como parametro un void ya que el boton es un void... haver si me entiendes ahora lo q intento hacer...
Creo que no se puede parsar una función como parametro nunca lo he visto.
pero create una clase con las acciones a realizar por ejemplo
public class AccionesBotones{
El constructor si lo necesitas
Todos los metodos que quieras
}
y despues lo llamas donde quieras
public JButton ejemplo2(JButton BotonAceptar, AccionesBotones accion){
return BotonAceptar
}
o algo parecido aqui pudes utilizar todos los metodos o funciones que tengas inclementados en la clase AccionesBotones no se si te puede valer es lo que se me ocurre.
Una función de primer orden es la que puede recibir como argumento otra función.
Se puede hacer muy fácil con C/C++ mediante apuntadores, pero en Java apenas será implementado en Java8 con las tan llevadas y traídas Lambdas y/o closures.
Groovy y Scala ya manejan closures. En Java comúnmente se resuelve implementando una interfaz en una clase anónima y pasandola como argumento.
Y como puedo impletar eso de la interfaz y pasarlo como argumenton sobre lo que quiero hacer...
Podría asegurar que ya lo has hecho anteriormente añadiendo un action Handler a un JButton.
Un ejemplo minimalista:
Declaras una clase con este método:
public void hacerAlgo(Runnable task) {
task.run(); // ejecuta lo que venga
}
y al invocar haces algo como:
ClaseEjmplo.hacerAlgo(new Runnable() {
public void run() {
System.out.println("Dentro de Runnable.run()");
}
});
Al método le pasas una clase anónima (la que implementas en el aire). La interfaz Runnable del ejemplo ya es parte del JDK, pero estás en posibilidad de definir tus propias interfaces.
no entendi lo que quieres hacer amigo, si necesitas crear atajos rapidos (mediante una combinacion de teclas) en java se me ocurre que puedes crear un JMenu y asignarle un atajo a cada item del menu, lo puedes ocultar si no lo deseas ver. si lo que quieres es por ejemplo que en un editor de texto haga algo cuando aprietas ciertas teclas puedes usar la clase Scanner o la Clase StringTokenizer , estas leen los caractres introducidos mediante tokens
Bueno queria saver si se puedes crear metodos con parametros void o funcion...
si es posible como seria la forma correcta de hacerlo...