Foros del Web » Programación para mayores de 30 ;) » Java »

JTable más ActionListener ¿?

Estas en el tema de JTable más ActionListener ¿? en el foro de Java en Foros del Web. Hola, otra vez... u.u He estado tratando de varias formas hacer que mi JTable implemente un ActionListener. Lo que quiero es que al presionar ENTER ...
  #1 (permalink)  
Antiguo 22/08/2010, 12:57
 
Fecha de Ingreso: enero-2010
Mensajes: 88
Antigüedad: 14 años, 3 meses
Puntos: 2
JTable más ActionListener ¿?

Hola, otra vez... u.u

He estado tratando de varias formas hacer que mi JTable implemente un ActionListener. Lo que quiero es que al presionar ENTER sobre la fila seleccionada, abrir una nueva ventana con informacion mas detallada del producto.

He intentado con addListSelectionListener pero se activa con cada fila seleccionada, no cuando apreciono ENTER.

¿Alguien tiene alguna idea?
Agradeceria la ayuda :D
  #2 (permalink)  
Antiguo 22/08/2010, 14:04
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Mensaje Respuesta: JTable más ActionListener ¿?

Puedes utilizar JXTable bajando la libreria swingx-0-9-3.jar

Bueno.... asi creamos una tabla con scroll
Código:
 private void mostrarTabla()
    {
        scroll_tablex_Comentarios = new JScrollPane();

        tablex_Comentarios = new JXTable();
        tablex_Comentarios.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));

        tablex_Comentarios.setColumnControlVisible(true); //Mostrar el iconito de filtros columnas
        tablex_Comentarios.setHighlighters(HighlighterFactory.createSimpleStriping()); //Poner colores diferentes entre cada fila

        scroll_tablex_Comentarios.setViewportView(tablex_Comentarios);
    }
y añades a la JFrame el scroll
Código:
add(scroll_tablex_Comentarios,BorderLayout.EAST);
En el siguiente código con el MouseListener obtengo el valor del campo de la fila seleccionada de la columna 2 ya sabes... se empieza con 0 el recorrido. Este lo mando a un JTextArea.

Código:
tablex_Comentarios.addMouseListener(new MouseAdapter()
        {

            public void mouseClicked(MouseEvent evt) {

                tblx_mostrarTablaXMouseClicked(evt);
            }
            private void tblx_mostrarTablaXMouseClicked(MouseEvent evt)
            {
                fila = tablex_Comentarios.rowAtPoint(evt.getPoint());
                if (fila > -1)
                {
                    txa_Comentario.setText(String.valueOf(tablex_Comentarios.getValueAt(fila, 2)));
                }
            }
        });
Si quieres hacerlo cuando presiones ENTER, esto es un ejemplo.
Código:
JTextField11.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                switch (e.getKeyCode()) {
                    case KeyEvent.VK_ENTER:
                        JOptionPane.showMessageDialog(null,"Presionaste enter");
                        break;
                }
            }
        });

Cualquier cosa.... que estes bien.
  #3 (permalink)  
Antiguo 22/08/2010, 20:41
 
Fecha de Ingreso: enero-2010
Mensajes: 88
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: JTable más ActionListener ¿?

Gracias haré la prueba
  #4 (permalink)  
Antiguo 23/08/2010, 13:57
 
Fecha de Ingreso: enero-2010
Mensajes: 88
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: JTable más ActionListener ¿?

No me funciona :(

Aun asi me gustaria seguir provando con la JTable. Si tuviera por ejemplo:

mod = new Modelo(d.getListaRepuesto(), titulos);
tabla = new JTable(mod);

Solo necesito que al precionar enter sobre una una fila seleccionada, poder obtener el contenido de la celda 0 de la fila... ¿Como lo hago? u.u

Etiquetas: actionlistener, jtable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:42.