Grazie [QUOTE=Ansharja;25484141]

non sapevo che il codice postato dovesse essere funzionante; ad ogni modo ho difficoltà a mettere tutto il codice perché il progetto è grande e con la separazione tra controllo e vista è un po' complicato creare qualcosa di funzionante, provo comunque a postare una buona parte della logica della creazione della texfield e compagni, sperando che possa essere utile per la risoluzione del problema.
Inoltre la creazione dell'interfaccia grafica parte dalla lettura di un file csv, dal quale individua il numero di colonne.

codice:
private JTextField[] dataField;
public void initComponentsForInsert(String[] names) {

		this.dataField = new JTextField[names.length];
		getContentPane().removeAll();
		getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));


		JPanel p = new JPanel();
		p.setLayout(new GridLayout(names.length, 2, 5, 5));


		for (int i = 0; i < names.length - 1; i++) {


			JLabel label;
			if (i == 0 || i == 5 || i == 7 || i == 9 || i == 10) {
				label = new JLabel(names[i] + " *");
			} else {
				label = new JLabel(names[i]);
			}
			label.setHorizontalAlignment(JLabel.RIGHT);
			label.setBorder(new EmptyBorder(5, 5, 5, 5));
			label.setName("label_" + i);


			if (i != 4) {


				JTextField field = new JTextField();
				field.setColumns(20);
				field.setName("field_" + i);
				dataField[i] = field;
				p.add(label);
				p.add(field);


			} else {


				createCombo();
				comboBox.setName("field_" + i);
				p.add(label);
				p.add(comboBox);


			}
		}


		getContentPane().add(p);


		JPanel panel_Button = new JPanel();
		panel_Button.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));


		btn_Ok = new JButton();
		panel_Button.add(btn_Ok);
		btn_Ok.setAction(control.getAction(Constants.ACTION_CONFIRM_INSERT_STATION));


		btn_Cancel = new JButton();
		panel_Button.add(btn_Cancel);
		btn_Cancel.setAction(control.getAction(Constants.ACTION_CANCEL_INSERT_STATION));


		getContentPane().add(panel_Button);


	}
	
	
	
	//Richiamo la creazione della dialog in un pannello
	public void insertStation() {


		StationDialog stationDialog = (StationDialog)                        viewStationsFrame.getSubView(Constants.STATION_DIALOG);


		StationsModel stationsModel = (StationsModel) table_Stations.getModel();
		stationDialog.initComponentsForInsert(stationsModel.columnNames);


		stationDialog.pack();
		stationDialog.setVisible(true);


	}
	
	//Quindi nell'azione ho
	public void actionPerformed(ActionEvent e) {
		
			
		ViewStationsFrame stationsFrame = (ViewStationsFrame) this.control.getView().getSubView(Constants.VIEW_STATIONS_FRAME);
		try {


			StationsPanel panelStations = stationsFrame.getStationsPanel();
			panelStations.insertStation();
			
		} catch (Exception ex) {
			String msg = ex.getMessage() + System.getProperty("line.separator") + ex.getCause().toString();
			logger.error(msg);
			stationsFrame.windowError("Errore",  msg);
		}


	}
Ad ogni modo, grazie per la disponibilità