Vector ListadoCD = new Vector();
ListadoCD.addElement(new CD("R1", "50 Cent", "Rap", "20000"));
ListadoCD.addElement(new CD("P2", "Ricardo Arjona", "Pop",
"35000"));
ListadoCD.addElement(new CD("D3", "Antoine Clamaran","Dance",
"30000"));
ListadoCD.addElement(new CD("S5", "Victor Manuelle","Salsa",
"23000"));
ESto es loq sifnifica los datos
lblCodigoCD = new JLabel("Codigo");
lblArtista = new JLabel("Artista");
lblGenero = new JLabel("Genero");
lblPrecio = new JLabel("Precio");
NEcesito mostrarlo en un JTable
DefaultTableModel modelo = new DefaultTableModel();
JTable Tabla = new JTable(modelo);
BorderLayout borderLayout1 = new BorderLayout();
final JTable table = new JTable(ListadoCD, titulos);
table.setPreferredScrollableViewportSize(new
Dimension(500, 70));
Pero me dice que el tipo de ListadoCD no es strig, que debo hacer para
solucionar esto?
Diría que leer la documentación puede ser un primer paso:
http://java.sun.com/javase/6/docs/api/javax/swing/JTable.html
http://java.sun.com/docs/books/tutorial/uiswing/index.html
Estás creando un Vector, luego un TableModel, luego un JTable (Tabla),
y luego otro JTable que usa ListadoCD como datos de un
DefaultTableModel. Los títulos de las columnas nos los muestras como
JLabels, y no veo por ningún lado qué es "titulos".
No nos enseñas todo el código relevante, pero si tiene la misma
organización que el que has puesto, es que puede haber de todo ahí. Si
quieres crear una tabla con una serie de datos fijos como los que
propones, debería bastar con algo así:
String[] columnNames = {"Código", "Artista", "Género", "Precio"};
Object[][] data = {
{"R1", "50 Cent", "Rap", new Integer(20000)},
{"P2", "Ricardo Arjona", "Pop", new Integer(35000),
(...)
};
JTable table = new JTable(data, columnNames);
Vector es una clase "thread-safe", lo que la hace ser bastante lenta.
Deberías acostumbrarte a usarla sólo cuando sea imprescindible.
Saludos.
--
If it's true that we are here to help others,
then what exactly are the OTHERS here for?
basicamente lo que hago es convertir ese vector de objetos que tengo
en vector de strings, o eso es lo que creo entiendo lo que hace el
ciclo, y ahi si puedo muestrar el vector de strings en el JTable.
btnListar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Vector vectorDatos = new Vector();
for(int i = 0; i < ListadoCD.size(); i++){
Vector vectorAux = new Vector();
vectorAux.add((((CD)ListadoCD.elementAt(i)).getCodigo()));
vectorAux.add((((CD)ListadoCD.elementAt(i)).getArtista()));
vectorAux.add((((CD)ListadoCD.elementAt(i)).getGenero()));
vectorAux.add((((CD)ListadoCD.elementAt(i)).getPrecio()));
vectorDatos.add(vectorAux);
}
Vector vectorCabecera = new Vector();
vectorCabecera.add("Codigo CD");
vectorCabecera.add("Artista");
vectorCabecera.add("Genero");
vectorCabecera.add("Precio");
JFrame ventana = new JFrame();
JTable tabla = new JTable(vectorDatos,
vectorCabecera);
tabla.setPreferredScrollableViewportSize(new
Dimension(380, 70));
tabla.setEnabled(false);
tabla.setShowHorizontalLines( false );
tabla.setForeground(Color.blue);
tabla.setBackground(Color.pink);
JScrollPane jScrollPane = new JScrollPane();
jScrollPane.setViewportView(tabla);
ventana.getContentPane().add(jScrollPane);
ventana.setTitle("Listado de CD's (Tamaño Vector
Actual["+ ListadoCD.size() +"])");
//Iniciar la ventana aproximadamente en el centro de
la pantalla.
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
ventana.setLocation(screenSize.width/3 ,
screenSize.height/2);
ventana.pack();
ventana.setVisible(true);
}
});