elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [SOLUCIONADO]Cargar JTable con Timer
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO]Cargar JTable con Timer  (Leído 3,893 veces)
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
[SOLUCIONADO]Cargar JTable con Timer
« en: 12 Diciembre 2009, 17:30 pm »

Hola, estoy haciendo una aplicacion en la que debo de cargar una tabla pero esta de debe mostrar como se van cargando cada fila, asi que lo estoy intentando hacer con timer, quiero que el proceso que me hace en el jtextarea me lo haga en mi jtable pero nada mas no  :¬¬, si alguien pudiera ayudarme se lo agradeceria.

Aqui el code


Código
  1. package tabla;
  2.  
  3. import javax.swing.JPanel;
  4. import javax.swing.JTextArea;
  5. import javax.swing.JButton;
  6. import javax.swing.JScrollPane;
  7. import javax.swing.JTable;
  8. //import javax.swing.table.DefaultTableModel;
  9. import java.awt.FlowLayout;
  10. import java.awt.Dimension;
  11. import javax.swing.table.AbstractTableModel;
  12. import java.awt.AWTEvent;
  13. import java.awt.event.ActionEvent;
  14. import java.awt.event.ActionListener;
  15. import javax.swing.JDialog;
  16. import javax.swing.Timer;
  17. import javax.swing.WindowConstants;
  18. import javax.swing.JFrame;
  19.  
  20. public class cargarTabla extends JFrame {
  21.  
  22.   private JButton botCargar;
  23.   private JTextArea areaTexto;
  24.    private JScrollPane deslizadorAreaTexto;
  25.    private JScrollPane deslizadorTablaCargada;
  26.    private JPanel panel;
  27.    private JTable tablaCargada;
  28.    private ModeloTabla modeloTabla;
  29.  
  30.    public static void main(String args[]) {
  31.        cargarTabla cT = new cargarTabla();
  32.        cT.setLocationRelativeTo(null);
  33.        cT.setVisible(true);
  34.    }
  35.  
  36.    public cargarTabla() {
  37.        iniciarInterfaz();
  38.    }
  39.  
  40.    private void iniciarInterfaz() {
  41.  
  42.        botCargar = new JButton();
  43.        panel = new JPanel();
  44.        deslizadorTablaCargada = new JScrollPane();
  45.        tablaCargada = new JTable();
  46.        deslizadorAreaTexto = new JScrollPane();
  47.        areaTexto = new JTextArea();
  48.  
  49.        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  50.        setTitle("Carcar Tabla");
  51.        setResizable(false);
  52.        getContentPane().setLayout(new FlowLayout());
  53.  
  54.        panel.setPreferredSize(new Dimension(660, 370));
  55.        panel.setLayout(null);
  56.  
  57.        modeloTabla=new ModeloTabla(new String[0],new Object[0][0]);
  58. tablaCargada = new JTable(modeloTabla);
  59.        deslizadorTablaCargada.setViewportView(tablaCargada);
  60.  
  61.        panel.add(deslizadorTablaCargada);
  62.        deslizadorTablaCargada.setBounds(20, 50, 300, 300);
  63.  
  64.        areaTexto.setColumns(20);
  65.        areaTexto.setEditable(false);
  66.        areaTexto.setRows(5);
  67.        deslizadorAreaTexto.setViewportView(areaTexto);
  68.  
  69.        panel.add(deslizadorAreaTexto);
  70.        deslizadorAreaTexto.setBounds(340, 50, 300, 300);
  71.  
  72.        botCargar.setText("Cargar");
  73.        botCargar.addActionListener(new ActionListener() {
  74.            public void actionPerformed(ActionEvent evt) {
  75.                cargar();
  76.            }
  77.        });
  78.        panel.add(botCargar);
  79.        botCargar.setBounds(20, 10, 150, 20);
  80.  
  81.        getContentPane().add(panel);
  82.  
  83.        pack();
  84.    }
  85.  
  86.    private void cargar(){
  87.     String mensaje="";
  88.     String [][] tablaCargada = tabla();
  89.     TiempoDeEspera tiempo = new TiempoDeEspera();
  90.  
  91.     mensaje+="Cargando Tabla\n";
  92.  
  93.     for(int fila=0;fila<tablaCargada.length;fila++){
  94.     mensaje+="\n";
  95.     tiempo.establecer(1);
  96. for(int columna=0;columna<tablaCargada[0].length;columna++){
  97. mensaje+=tablaCargada[fila][columna]+" ";
  98. areaTexto.setText(mensaje);
  99. }
  100. }
  101.  
  102.     modeloTabla.setNewTableData(new String[tablaCargada[0].length], tablaCargada);
  103.  
  104.  
  105.    }
  106.  
  107.    private String[][] tabla(){
  108.     String afnd[][]= {{"Estados","a","b","FDC"},
  109.      {"q1","q2,q3","","-2"},
  110.      {"q2","","q2,q4","-2"},
  111.      {"q3","q3","q4","0"},
  112.      {"q4","q4","","0"}};
  113. return afnd;
  114.    }
  115.  
  116. }
  117.  
  118. class ModeloTabla extends AbstractTableModel{
  119. private static final long serialVersionUID = 1L;
  120.  
  121. private Object[][] data;
  122. private String[] columnNames;
  123.  
  124. public ModeloTabla(String[] titles,Object[][] tabla){
  125. columnNames=titles;
  126. data=tabla;
  127. }
  128.  
  129. public void setNewTableData(String[] titles,Object[][] tabla){
  130. columnNames=titles;
  131. data=tabla;
  132. fireTableStructureChanged();
  133. }
  134.  
  135. public String getColumnName(int columna) {
  136.        return columnNames[columna];
  137.    }
  138.  
  139.    public void setValueAt(Object value, int row, int col) {
  140.       if(value==null)
  141.       return;          
  142.        data[row][col] = value;
  143.        fireTableDataChanged();
  144.    }
  145.  
  146. public int getColumnCount() {
  147. return columnNames.length;
  148. }
  149.  
  150. public int getRowCount() {
  151. return data.length;
  152. }
  153.  
  154. public Object getValueAt(int fila, int columna) {
  155. return data[fila][columna];
  156. }
  157. }
  158.  
  159. class TiempoDeEspera extends JDialog{
  160.  
  161. private static final long serialVersionUID = 1L;
  162. private Timer tiempo;
  163.  
  164. public void establecer(int segundos){
  165. tiempo = new Timer(((segundos+1)*1000),new ActionListener(){
  166. public void actionPerformed(ActionEvent e){
  167. dispose();
  168. tiempo.stop();
  169. }
  170. });
  171. setUndecorated(true);
  172. setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  173. enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  174. setModal(true);
  175. tiempo.start();
  176. repaint();
  177. validate();
  178. setSize(1,1);
  179. setVisible(true);
  180. }
  181. }
  182.  
  183.  
  184.  


« Última modificación: 19 Agosto 2010, 07:43 am por LEYER » En línea

abc
Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: Cargar JTable con Timer
« Respuesta #1 en: 12 Diciembre 2009, 19:26 pm »

aqui lo tienes

Código
  1. import java.awt.AWTEvent;
  2. import java.awt.Dimension;
  3. import java.awt.FlowLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.util.StringTokenizer;
  7.  
  8. import javax.swing.JButton;
  9. import javax.swing.JDialog;
  10. import javax.swing.JFrame;
  11. import javax.swing.JPanel;
  12. import javax.swing.JScrollPane;
  13. import javax.swing.JTable;
  14. import javax.swing.JTextArea;
  15. import javax.swing.Timer;
  16. import javax.swing.WindowConstants;
  17. import javax.swing.table.DefaultTableModel;
  18.  
  19. public class cargarTabla extends JFrame {
  20. private static final long serialVersionUID = 1L;
  21.  
  22.    private JButton     botCargar;
  23.    private JTextArea   areaTexto;
  24.    private JScrollPane deslizadorAreaTexto;
  25.    private JScrollPane deslizadorTablaCargada;
  26.    private JPanel      panel;
  27.    private JTable      tablaCargada;
  28.    private ModeloTabla modeloTabla;
  29.  
  30.    public static void main(String args[]) {
  31.        cargarTabla cT = new cargarTabla();
  32.        cT.setLocationRelativeTo(null);
  33.        cT.setVisible(true);
  34.    }
  35.    public cargarTabla() {
  36.        iniciarInterfaz();
  37.    }
  38.  
  39.    private void iniciarInterfaz() {
  40.  
  41.        botCargar = new JButton();
  42.        panel = new JPanel();
  43.        deslizadorTablaCargada = new JScrollPane();
  44.        tablaCargada = new JTable();
  45.        deslizadorAreaTexto = new JScrollPane();
  46.        areaTexto = new JTextArea();
  47.  
  48.        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  49.        setTitle("Carcar Tabla");
  50.        setResizable(false);
  51.        getContentPane().setLayout(new FlowLayout());
  52.  
  53.        panel.setPreferredSize(new Dimension(660, 370));
  54.        panel.setLayout(null);
  55.  
  56.        modeloTabla=new ModeloTabla(new String[0],new Object[0][0]);
  57. tablaCargada = new JTable(modeloTabla);
  58.        deslizadorTablaCargada.setViewportView(tablaCargada);
  59.  
  60.        panel.add(deslizadorTablaCargada);
  61.        deslizadorTablaCargada.setBounds(20, 50, 300, 300);
  62.  
  63.        areaTexto.setColumns(20);
  64.        areaTexto.setEditable(false);
  65.        areaTexto.setRows(5);
  66.        deslizadorAreaTexto.setViewportView(areaTexto);
  67.  
  68.        panel.add(deslizadorAreaTexto);
  69.        deslizadorAreaTexto.setBounds(340, 50, 300, 300);
  70.  
  71.        botCargar.setText("Cargar");
  72.        botCargar.addActionListener(new ActionListener() {
  73.            public void actionPerformed(ActionEvent evt) {
  74.                cargar();
  75.            }
  76.        });
  77.        panel.add(botCargar);
  78.        botCargar.setBounds(20, 10, 150, 20);
  79.  
  80.        getContentPane().add(panel);
  81.  
  82.        pack();
  83.    }
  84.  
  85.    private void cargar(){
  86.     String mensaje="";
  87.     String [][] tablaCargada = tabla();
  88.     TiempoDeEspera tiempo = new TiempoDeEspera();
  89.  
  90.     mensaje+="Cargando Tabla\n";
  91.  
  92.     for(int fila=0;fila<tablaCargada.length;fila++){
  93.     mensaje+="\n";
  94.     String temp = "";
  95.     tiempo.establecer(1);
  96. for(int columna=0;columna<tablaCargada[0].length;columna++){
  97. mensaje+=tablaCargada[fila][columna]+" ";
  98. temp+=tablaCargada[fila][columna]+",";
  99. areaTexto.setText(mensaje);
  100. }
  101. StringTokenizer tokenizer = new StringTokenizer(temp,",");
  102. modeloTabla.add(tokenizer.nextToken(),tokenizer.nextToken(),tokenizer.nextToken(),tokenizer.nextToken());
  103.     }
  104.  
  105.    }
  106.    private String[][] tabla(){
  107.     String afnd[][]= {{"q1","q2,q3"," ","-2"},{"q2"," ","q2,q4","-2"},
  108.                      {"q3","q3","q4","0"},{"q4","q4"," ","0"}};
  109. return afnd;
  110.    }
  111. }
  112. class ModeloTabla extends DefaultTableModel{
  113. private static final long serialVersionUID = 1L;
  114.  
  115. private Object[][] data;
  116.  
  117. public ModeloTabla(String[] titles,Object[][] tabla){
  118. addColumn("Estados");
  119. addColumn("A");
  120. addColumn("B");
  121. addColumn("FDC");
  122. data=tabla;
  123. }
  124. public void add(String nextToken, String nextToken2, String nextToken3,
  125. String nextToken4) {
  126. Object object[] = {nextToken,nextToken2,nextToken3,nextToken4};
  127. super.addRow(object);
  128.  
  129. }
  130.    public void setValueAt(Object value, int row, int col) {
  131.       if(value==null)
  132.       return;          
  133.        data[row][col] = value;
  134.        fireTableDataChanged();
  135.    }
  136. }
  137. class TiempoDeEspera extends JDialog{
  138.  
  139. private static final long serialVersionUID = 1L;
  140. private Timer tiempo;
  141.  
  142. public void establecer(int segundos){
  143. tiempo = new Timer(((segundos+1)*1000),new ActionListener(){
  144. public void actionPerformed(ActionEvent e){
  145. dispose();
  146. tiempo.stop();
  147. }
  148. });
  149. setUndecorated(true);
  150. setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  151. enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  152. setModal(true);
  153. tiempo.start();
  154. repaint();
  155. validate();
  156. setSize(1,1);
  157. setVisible(true);
  158. }
  159. }


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Cargar JTable con Timer
« Respuesta #2 en: 13 Diciembre 2009, 06:12 am »

 :¬¬tsss que tonto soy, estaba usando  AbstractTableModel en vez de DefaultTableModel.
Gracias  ;D

Saludos

PD. Abra alguna forma de tener mas pequeña la clase TiempoDeEspera ?? o algo que haga lo mismo, es que siento que es mucho code para lo que hace.
En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
quitar filas de un jtable(SOLUCIONADO)
Java
basickdagger 1 8,104 Último mensaje 27 Marzo 2011, 20:02 pm
por basickdagger
[solucionado]Ayuda a la hora de introducir datos en un jtable
Java
juni85 2 3,497 Último mensaje 28 Octubre 2011, 11:03 am
por juni85
{SOLUCIONADO} JTable me repite datos de un ResultSet {SOLUCIONADO}
Java
|Miguel| 4 5,710 Último mensaje 3 Marzo 2012, 19:26 pm
por Proteus1989
[SOLUCIONADO] TimeSpan o Timer?
.NET (C#, VB.NET, ASP)
Eleкtro 4 2,877 Último mensaje 23 Marzo 2013, 23:08 pm
por Eleкtro
Rellenar Jtable y actualizarla con un timer.
Java
viruzexe 3 3,500 Último mensaje 14 Diciembre 2013, 20:42 pm
por viruzexe
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines