Java - ayuda con codigo

 
Vista:

ayuda con codigo

Publicado por nivato (2 intervenciones) el 19/01/2007 11:04:22
Lo que intento hacer es rellenar un JTable mediante un for pero me da error y da error en la parte donde se rellena la tabla:

Codigo:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;

public class ventana extends JFrame{
public ventana(){

Container cp = getContentPane();
cp.setLayout(new BorderLayout());

// Nombres de las columnas
final String[] nombreCol = {"Sesion","Practica","Aula"};

// Datos
Object[][] datos[][];
for(int i=0;i<10;i++){
datos[][i]={{"q","a"}}; //aqui da el error ] expectec y no statement
};

JTable tabla = new JTable(datos,nombreCol);

tabla.setFont(new Font("Arial",Font.BOLD,18));
tabla.setRowHeight(24);

JScrollPane jsp = new JScrollPane(tabla); //,ver,hor);

cp.add(jsp,BorderLayout.CENTER);

setSize(500,300);
setVisible(true);
}

public static void main(String[] args){
new ventana();
}
}

Gracias
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

RE:ayuda con codigo

Publicado por Gonzalo (180 intervenciones) el 19/01/2007 11:52:21
No se exactamente cómo quieres rellenar "datos", pero:

1. Si quieres asignar un elemento de la matriz sera algo como:

datos[i][j] = ...
Es decir, necesitas poner los dos indices. Nunca puedes asignar a datos[i][] o a datos[][i]. Como mucho puedes referirte a una fila entera poniendo datos[i] pero sin ponerle [] vacío.

2. Además, no has inicializado "datos".
Necesitas primero, no sólo definirlo, sino inicializarlo. No basta decir String[][] datos; tienes que hacer datos = new String[10][10] (o los tamaños que vayas a usar).

3. Lo que me lleva a que me temo que tampoco has definido bien "datos".
Según tu código:
Object[][] datos[][];
Pero es que eso, define datos como un array de 4 dimensiones. Es lo mismo que escribir:
Object[][][][] datos;
Y puede que lo quieras para algo, pero me parece a mi que no necesitas un array de cuatro dimensiones, no?
Solo se pone la designación de [][] una vez.

En resumen, haz algo como...

// Datos
String[][] datos = new String[10][2];
for(int i=0;i<10;i++){
datos[i][0] = "q";
datos[i][1] = "a";
};
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