Componente JTable en Java Swing

String data[][]={ {"101","Amit","670000"},{"102","Jai","780000"},{"101","Sachin","700000"}};    
// (es posible incrustar código html si lo hacemos dentro de las etiquetas <html>)
String columns[]={"Ciclo","Módulo","<html>Unidad<br>Formativa>","Opcion"};         
JTable tabla=new JTable(cursillos,column);    
tabla.setBounds(30,40,200,300);          
JScrollPane sp=new JScrollPane(tabla); 

sp.setPreferredSize(new Dimension(1000, 300));
sp.setMinimumSize(new Dimension(1000,200));

panelGlobal.add(sp);

Cambiar el header de la tabla

tabla = new JTable();
JTableHeader th = tabla.getTableHeader();
th.setPreferredSize(new Dimension(100, 100));

Si sólo quisiera modificar la altura de la tabla, pero no su anchura

JTableHeader th = tabla.getTableHeader();
		
Dimension d = th.getPreferredSize();
d.height = 30;
th.setPreferredSize(d);

Alimentar la tabla sin usar su constructor

DefaultTableModel tableModel = new DefaultTableModel(cursillos, columns);
tabla.setModel(tableModel);

Alimentando la tabla con un ArrayList

String[][] arrayListCursoToMultidimensionalStringArray(ArrayListcursos){
	Iterator<Curso> it = cursos.iterator();
	String [][] cursosArray= new String[cursos.size()][3];
	int i=0;
	while(it.hasNext()) {
		Curso c = it.next();
		String[]curso = {c.getCiclo(), c.getModulo(), c.getUf(), "X"};
		cursosArray[i] =curso; 
		i++;
	}
	return cursosArray;	
}

Añadiendo un listener a la tabla

JTable jt=new JTable(cursillos,column);   

jt.addMouseListener(new MouseAdapter() {
	public void mousePressed(MouseEvent e) {
		System.out.println("llega");
	}
});

Añadir un popup al pulsar sobre una fila

JPopupMenu popup = new JPopupMenu();
JMenuItem removeItem = new JMenuItem("Eliminar fila");
popup.add(removeItem);

JTable tabla=new JTable(cursillos,column);   

tabla.addMouseListener(new MouseAdapter() {
	public void mousePressed(MouseEvent e) {
		popup.show(jt, e.getX(), e.getY());
	}
});

Materializar la opción de borrado

removeItem.addActionListener(new ActionListener() {
	
	@Override
	public void actionPerformed(ActionEvent e) {
		int row = tabla.getSelectedRow();
		System.out.println(row);
	}
});

Tabs

JTabbedPane tabbedPane = new JTabbedPane();

tabbedPane.add("Colors", new JPanel());
tabbedPane.add( "Fruits", new JPanel());
tabbedPane.add("Vitamins", new JPanel( ) ) ;
	 
panelGlobal.add(tabbedPane);

Para modificar dinámicamente el contenido de un tab:

tabbedPane.setComponentAt(2, panelCursos);