Software Guru Conference & Expo 2014

Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

También puedes responder nuestra encuesta para saber en que estado vives!

Google developer day en México

Para la gente que no pudo asistir al google developer day, aquí algunas de las presentaciones.

http://sites.google.com/site/developerdaymexico/

COMPILADORES

ESOS MORROS JAVEROS NECESITO HACER UN ANALIZADOR LEXICO PERO ALGO ASI COMO EL EDITOR DE NETBEANS QUE CUANDO ACABE DE ESCRIBIR UNA PALABRA LA PINTE DE COLOR SI ES RESERVADA, NO QUIERO QUE ME LO HAGAN POR QUE SE QUE PUEDO PERO SI ALGUIEN TIENE INFORMACION O ALGUNA HERRAMIENTA ME FACILITARIAN LA CHAMBA.

SALUDOS A LOS ESTUDIANTES DE LOS TECNOLOGICOS A LOS QUE AL IGUAL QUE A MI LE GUSTA JAVA

DUDAS

BUENOS DIAS LE SALUDO CORDIALMENTE LA PRESENTE ES PAA INVIARTARLOS AL IRC PRA ACALARAR DUDAS TODOS LOS MIERCOLES

Java Look & Feel, Mejorando el aspecto de las aplicaciones...

Una constante queja de Java para aplicaciones de escritorio es que comparado con Windows Forms este último es más agradable a la vista.

Substance.

Substance es una librería para aplicaciones hechas con Swing para darle un bonito Look & Feel a tu desarrollo Java.

La página del proyecto:
https://substance.dev.java.net/

Aquí algunos ejemplos de lo que se puede lograr:


También puedes probar todas sus capacidades dando clic aquí:

;)

Crear teclas aceleradoras para actions

Con este método podemos asignar teclas acelaradoras a nuestros actions

        protected void crearAcelerador(int key, Action action) {
                getRootPane()
                                .getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
                                .put(KeyStroke.getKeyStroke(key, 0),
                                                action.getValue(Action.SHORT_DESCRIPTION));
                getRootPane().getActionMap().put(
                                action.getValue(Action.SHORT_DESCRIPTION), action);
        }

Lo podemos usar de la siguiente manera:
crearAcelerador(KeyEvent.VK_ESCAPE, salirAction);

Con esto al presionar la tecla escape se ejecutará el código que tenemos en la acción salir.

Fábrica de ventanas

Este código lo podemos usar en nuestro menú principal para crear las ventanas de la aplicación a partir del nombre del action que este asignado a un menú o botón

        private class VentanaAction extends AbstractAction {
                private static final long serialVersionUID = 1L;

                VentanaAction(String name, int key) {
                        super(name);
                        putValue(MNEMONIC_KEY, key);
                }

                private void crearVentana(AbstractAction action) {
                        try {
                                JFrame form = (JFrame) Class.forName(
                                                "presentacion." + action.getValue(NAME) + "Form")
                                                .newInstance();
                                form.setVisible(true);
                        } catch (Exception e) {
                                e.printStackTrace();
                        }
                }

                public void actionPerformed(ActionEvent e) {
                        crearVentana(this);
                }
        }

Nuestro action puede estar declarado así:
private VentanaAction consultasAction = new VentanaAction("Consultas", KeyEvent.VK_C);

Con esto al presionar alt + c se instanciara la clase presentacion.ConsultasForm que hereda de JFrame.

Métodos para mostrar mensajes

Métodos sencillos para mostrar un mensaje de advertencia y otro para confirmar con si o no.

        protected void mostrarMensaje(String mensaje) {
                JOptionPane.showMessageDialog(this, mensaje, "Advertencia",
                                JOptionPane.WARNING_MESSAGE);
        }

        protected boolean confirmarMensaje(String mensaje) {
                return JOptionPane.showConfirmDialog(this, mensaje, "Confirmar",
                                JOptionPane.YES_NO_OPTION) == 0;
        }

Código para habilitar/deshabilitar JTextFields

Con este método podemos habilitar o deshabilitar uno o varios JTextFields además de asignar otros colores

        protected void habilitarControles(Component component, boolean b) {
                if (component instanceof JTextField) {
                        JTextField text = ((JTextField) component);
                        text.setEnabled(b);
                        if (b) {
                                text.setDisabledTextColor(new Color(0, 0, 0));
                                text.setBackground(new Color(255, 255, 255));
                        } else {
                                text.setDisabledTextColor(new Color(0, 40, 240));
                                text.setBackground(new Color(240, 240, 240));
                        }
                } else {
                        if (component instanceof Container) {
                                for (Component c : ((Container) component).getComponents()) {
                                        habilitarControles(c, b);
                                }
                        }
                }
        }

Código para limpiar JTextFields

Con este método podemos limpiar uno o varios JTextFields

        protected void limpiar(Component component) {
                if (component instanceof JTextField) {
                        JTextField text = (JTextField) component;
                        text.setText("");
                } else {
                        if (component instanceof Container) {
                                for (Component c : ((Container) component).getComponents()) {
                                        limpiar(c);
                                }
                        }

                }
        }

Código para convertir flechas y enter en tab

Con este código al presionar enter y flecha abajo se hará un tab. También al presionar shift + enter y flecha arriba se hará un shift + tab.

                Set<AWTKeyStroke> teclasTab = new HashSet<AWTKeyStroke>();
                teclasTab.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0));
                teclasTab.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_DOWN, 0));
                teclasTab.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB, 0));
                getContentPane().setFocusTraversalKeys(
                                KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, teclasTab);
                Set<AWTKeyStroke> teclasShiftTab = new HashSet<AWTKeyStroke>();
                teclasShiftTab.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER,
                                InputEvent.SHIFT_DOWN_MASK));
                teclasShiftTab.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_UP, 0));
                teclasShiftTab.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB,
                                InputEvent.SHIFT_DOWN_MASK));
                getContentPane().setFocusTraversalKeys(
                                KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, teclasShiftTab);
Distribuir contenido