Problemas con JComboBox y JTable...

Lestat
20 de Febrero del 2002
Salu2:

¿Alguien sabe cómo puedo meter en una celda de una table swing un JComboBox? He probado a hacerlo con el siguiente código (un ejemplo para ir afianzando mis escasos conocimientos de java ;-)) pero lo único que me sale es una especie de churrillo de texto (javax.swing.JComboBox...) que me da la sensación de que intenta convertirlo a texto, aunque le haya hecho un cast.

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;

public class nuevo extends JFrame{
JComboBox desplegable=new JComboBox();
JPanel panel=new JPanel();
JMenuBar barra=new JMenuBar();
JMenu menu=new JMenu("menu");
JMenu menuarchivo=new JMenu("Archivo");
JMenuItem abrir=new JMenuItem("Abrir");
JMenuItem cerrar=new JMenuItem("Cerrar");
JMenuItem primero=new JMenuItem("primero");
JMenuItem segundo=new JMenuItem("segundo");
JLabel etiqueta=new JLabel("Etiqueta");
JCheckBox cuadradito=new JCheckBox();
JTextField texto=new JTextField();
JButton boton=new JButton("Escribir");
JButton botonabajo=new JButton("Escribir en Campo de Texto");
JTextField texto2=new JTextField();
JPanel panel2=new JPanel();
String[] columnas={"Dirección","Protocolo","Acción"};
String[] protos={"TODOS","TCP","UDP","ICMP"};
JComboBox protocolos=new JComboBox(protos);
Object[][] celdas={columnas,{"192.123.12.1","TCP","DROP"},{"123.123.123.1",((JComboBox)new
JComboBox(protos)),"ACCEPT"}};
JTable tabla=new JTable(celdas,columnas);
public nuevo(){
super("Una Prueba");
menu.add(primero);
menu.add(segundo);
desplegable.addItem("Hola");
desplegable.addItem("Adiós");
desplegable.setSelectedIndex(1);
//desplegable.addItem(menu);
//panel.setLayout(new GridLayout(0,1));
panel.setLayout(new FlowLayout());
panel.setBorder(new TitledBorder("Nisesabe"));
panel.add(desplegable);
panel2.setLayout(new GridLayout(0,1));
panel2.add(cuadradito);
panel2.add(etiqueta);
panel2.add(texto);
panel2.add(boton);
panel2.add(botonabajo);
panel2.add(texto2);
panel.add(panel2);
panel.add(tabla);
getContentPane().add(panel);
setSize(640,480);
menuarchivo.add(abrir);
menuarchivo.add(cerrar);
barra.add(menuarchivo);
setJMenuBar(barra);
addWindowListener(new WindowHandler());
cerrar.addActionListener(new MenuItemHandler());
boton.addActionListener(new ManejadorBotonEscribir());
botonabajo.addActionListener(new ManejadorBotonEscribirAbajo());
etiqueta.setName("unaetiqueta");
show();
}
public static void main(String[] args){
new nuevo();
}
public class WindowHandler extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
public class MenuItemHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
public class ManejadorBotonEscribir implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println(texto.getText());
if(cuadradito.isSelected())
texto2.setText("Ahí está");
else
texto2.setText("Vaya, pues no");
System.out.println(etiqueta.getName());
}
}
public class ManejadorBotonEscribirAbajo implements ActionListener{
public void actionPerformed(ActionEvent e){
texto2.setText(texto.getText());
}
}
}

Por favor, si alguien sabe cómo hacerlo, escribidme a [email protected], es bastante urgente.

Muchas gracias.