style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

¿Cómo crear una biblioteca Global en Java?

Buenas a todos! Ultimamente estoy trabajando más con Java y tenia muchos métodos que repetía en diferentes clases como por ejemplo:

KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
   
    public AlmacenVentanaDialog() {
        initComponents();
        //CONVERTIR TODO LOS JTEXTFILD A MAYUSCULAS
        manager.addKeyEventDispatcher(new KeyEventDispatcher() {
                       
            @Override
            public boolean dispatchKeyEvent(KeyEvent e) {
               if(e.getID() == KeyEvent.KEY_TYPED){
                    if(e.getKeyChar() >= 'a' && e.getKeyChar() <= 'z'){
                        e.setKeyChar((char)(((int)e.getKeyChar()) -32));
                    }                    
               }
               return false;
            }
        });
    }

Por ejemplo esta validacion para convertir todos los JtextField a mayusculas lo tengo que repetir en varias JPanel y asi como eso tambien tengo varios eventos y JTextField que reciben los eventos: txtCtaArea, txtAbvArea, txtDescArea,txtCodArea, etc :

//txtCodArea es un JTextField
txtCodArea.addKeyListener(new KeyAdapter() {
           
            @Override
            public void keyTyped(KeyEvent e){
                char c = e.getKeyChar();
                if(!((Character.isDigit(c)||
                        (c == KeyEvent.VK_BACK_SPACE)||
                        (c == KeyEvent.VK_DELETE)))){
                    getToolkit().beep();
                    e.consume();
                }
            }
           
        });

Me gustaria saber como hacer para que los diferentes JTextField reciban los eventos y que todo esto este en una Biblioteca en especial para que solo pueda llamarlo.

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.
Imagen de neko069

Pues si en todos los

Pues si en todos los JTextField vas a meter la misma validación, puedes hacer una clase aparte, con un método que sea algo así como (un nombre cortito :-P )

public void cargaEnElJTextFieldQueTeMandoElListenerComun( JTextField jTextField){

    jTextField.addKeyListener(new KeyAdapter() {
           
            @Override
            public void keyTyped(KeyEvent e){
                char c = e.getKeyChar();
                if(!((Character.isDigit(c)||
                        (c == KeyEvent.VK_BACK_SPACE)||
                        (c == KeyEvent.VK_DELETE)))){
                    getToolkit().beep();
                    e.consume();
                }
            }
        });
}

Y ya.

Revisando un poco, hay tema muy relacionado con tu problema, podrías echarle una revisada.

Imagen de paranoid_android

Podrias crear una anotación

Podrias crear una anotación que inyecte el código en el componente.

Imagen de CuicaJavier

Gracias!

Gracias neko, era lo que necesitaba asi como esas cosas donde o como puedo crear o que paginas me recomiendas leer para aprender más.
Saludos!

Imagen de CuicaJavier

Inyectar?

Hola paranoid_android a que te refieres con crear una anotacion que inyecte el codigo en el componente? podrías mostrarme algun ejemplo. Es como se hace en Spring?

Imagen de neko069

Yo siempre remito a los

Yo siempre remito a los novatos (JAJA!! habla el experto!) a los tutoriales oficiales de Oracle, y bueno, si vas a usar un determinando componente en este caso de Swing, bien puedes echarle una leída rapidita a todos los métodos con los que cuenta el componente en cuestión, digo no es cosa de que te aprendas al 100% todo el API, pero de menos que en un momento dado, si pienses "este comportamiento recuerdo que lo vi en las docs".
Con respecto a lo que dice @paranoid_android, también es viable la anotación, pero eso si no me equivoco ya es parte de programación de aspectos (interceptores) y pues éso sí nunca lo he trabajado en Java SE.

Imagen de paranoid_android

Perdon por la tardanza

Es la mezcla de dos tecnologías:
Anotaciones y el Api Reflection

Las anotaciones constan de 2 partes una que permite agregar los parametros al codigo de las clases y otra que escanea la clase donde está la anotación y ejecuta.

Aqui te dejo un ejemplo:

http://isagoksu.com/2009/development/java/creating-custom-annotations-and-making-use-of-them/
Saludos.

Imagen de paranoid_android

Te anexo mas información

En google code hay un proyecto que se ve muy bien de unas librerias que usan anotaciones con swing.
http://code.google.com/p/myt-swing-actions/.
Un saludo.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">