Java - Mostrar mas de 100 filas en un jtable

 
Vista:
Imágen de perfil de Jose Luis León López

Mostrar mas de 100 filas en un jtable

Publicado por Jose Luis León López (6 intervenciones) el 04/11/2016 01:50:17
Colegas tengo un porblema serio estoy terminando un sistema en java pero se me presenta ahora un porblema en la estapa de pruebas y es que tengo un jtaboe que debe mostrar unos 1500 registros pero solo muestra 100 y es poque por default el jtable tiene 100 rows como maximo alguien sabe como cambiar este valor o como resolver mi problema se los agradesco de antemano saludos coordiales
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Mostrar mas de 100 filas en un jtable

Publicado por Yamil Bracho (2315 intervenciones) el 04/11/2016 01:58:28
Create tu modelo en base a AbstractTableModel ? SI es asi, especificas el numero de filas que quieres tener en el metodo getRowCount()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar mas de 100 filas en un jtable

Publicado por Alain (1 intervención) el 02/06/2022 22:49:04
He intentado eso pero getRowCount lo q devuelve es la cantidad de columnas q tiene la tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Mostrar mas de 100 filas en un jtable

Publicado por Kabuto (1381 intervenciones) el 03/06/2022 01:08:30
No se de donde os sale esa limitación.

Si ya tenemos los registros de antemano, por ejemplo en una matriz, no hay problema en construir en una tabla con 1500 registros, o los que sea.

Un ejemplo con una matriz de 1500 números generados al azar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class Tabla extends JFrame {
 
	private String[][] numeros;
 
	public Tabla() {
 
		Random azar = new Random();
		numeros = new String[1500][2];
		for (int i = 0; i < 1500; i++) {
			numeros[i][0] = "#"+i;
			numeros[i][1] = String.format("%05d", azar.nextInt(99999));
		}
 
 
		MiTabla tabla = new MiTabla(numeros, new String[] {"ID", "Valor"});
 
		JPanel panelTabla = new JPanel();
		JScrollPane scroll = new JScrollPane(tabla);
		scroll.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
		scroll.setPreferredSize(new Dimension(400, 300));
 
		panelTabla.add(scroll);
 
		setContentPane(panelTabla);
 
		setTitle("Tabla");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
 
	}
 
	private class MiTabla extends JTable {
 
		public MiTabla(String[][] datos, String[] nombresColumna) {
			super(new DefaultTableModel(datos, nombresColumna));
			DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
			centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
			setDefaultRenderer(Object.class, centerRenderer);
		}
	}
 
 
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable()  {
			@Override
			public void run() {
				new Tabla();
			}
		});
	}
 
}


O en el caso de que no se tengan de antemano esos registros, supongamos que van llegando y hay que ir añadiéndolos "en tiempo real", pues tampoco me encuentro con ninguna limitación.
Ejemplo donde un botón agrega 10 nuevos registros con cada pulsación:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
public class Tabla extends JFrame {
 
	private MiTabla miTabla;
	private DefaultTableModel modelo;
 
	public Tabla() {
 
		miTabla = new MiTabla(new String[] {"ID", "Valor"});
		modelo = (DefaultTableModel) miTabla.getModel();
 
 
		JPanel panelTabla = new JPanel();
		JScrollPane scroll = new JScrollPane(miTabla);
		scroll.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
		scroll.setPreferredSize(new Dimension(400, 300));
		panelTabla.add(scroll);
 
		JPanel panelBoton = new JPanel();
		JButton btNuevo = new JButton("Nuevos Registros");
		btNuevo.addActionListener(new AccionNuevo());
		panelBoton.add(btNuevo);
 
		setLayout(new BorderLayout());
		add(panelTabla, BorderLayout.CENTER);
		add(panelBoton, BorderLayout.SOUTH);
 
		setTitle("Tabla");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
 
	}
 
	private class MiTabla extends JTable {
 
		public MiTabla(String[] nombresColumna) {
			super(new DefaultTableModel(nombresColumna, 0));
			DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
			centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
			setDefaultRenderer(Object.class, centerRenderer);
		}
	}
 
	private class AccionNuevo implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
			Random azar = new Random();
			for (int i = 0; i < 10; i++)
				modelo.addRow(new Object[]{"#"+modelo.getRowCount(), String.format("%05d", azar.nextInt(99999))});
		}
	}
 
 
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable()  {
			@Override
			public void run() {
				new Tabla();
			}
		});
	}
 
}


No se si se debe a que estáis construyendo una interfaz gráfica con NetBeans, pues algo me ha parecido leer al respecto en otros sitios.
Consejo: Aprended a construir interfaces Swing sin NetBeans ni ningún otro "GUI Builder"
Haceos dueños de vuestro código, nada de que una aplicación escriba código por vosotros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar