 a fields in the file in your controller class with the @FXML annotation. Ensure you implements javafx.fxml.Initializable. And in the initialize method you can do the configuration side for every column. And avoid the add of the columns to the table, because they already are in the table view.
Here is a sample if your are defining your TableView in your FXML like this:
<TableView layoutX="145.0" layoutY="76.0" prefHeight="200.0" prefWidth="200.0">
  <columns>
    <TableColumn prefWidth="75.0" text="Student ID" fx:id="studentIDCol" />
    <TableColumn prefWidth="75.0" text="Name" fx:id="nameCol" />
    <TableColumn prefWidth="75.0" text="Address" fx:id="addressCol" />
    <TableColumn prefWidth="75.0" text="Age" fx:id="ageCol" />
  </columns>
</TableView>

Then your controller class will be like this:
class YourTest implements javafx.fxml.Initializable{
//More Code
@FXML
TableColumn<ObservableList<String>, String> studentIDCol;
@FXML
TableColumn<ObservableList<String>, String> nameCol;
@FXML
TableColumn<ObservableList<String>, String> addressCol;
@FXML
TableColumn<ObservableList<String>, String> ageCol;
//More of your code 
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
    studentIDCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>,String>, ObservableValue<String>>() {         
        @Override
        public ObservableValue<String> call(CellDataFeatures<ObservableList<String>, String> cdf) {     
            return new SimpleStringProperty(cdf.getValue().get(0));
        }
    }); 

    nameCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>,String>, ObservableValue<String>>() {          
        @Override
        public ObservableValue<String> call(
a fields in the file in your controller class with the @FXML annotation. guarantee you follow through javafx.fxml. Initializable. And in the initialize method you can do the configuration english for every column. And avoid the add of the column to the table, because they already are in the table position. 
 Here is a sample if your are defining your TableView in your FXML like this: 
 < TableView layoutX="145.0 " layoutY="76.0 " prefHeight="200.0 " prefWidth="200.0 " > 
   < column > 
     < TableColumn prefWidth="75.0 " text="Student ID " fx: id="studentIDCol " / > 
     < TableColumn prefWidth="75.0 " text="Name " fx: id="nameCol " / > 
     < TableColumn prefWidth="75.0 " text="Address " fx: id="addressCol " / > 
     < TableColumn prefWidth="75.0 " text="Age " fx: id="ageCol " / > 
   < /columns > 
 < /TableView > 

 Then your controller class will be like this: 
 class YourTest implements javafx.fxml. Initializable { 
 //More Code 
 @FXML 
 TableColumn < ObservableList < String >, String > studentIDCol; 
 @FXML 
 TableColumn < ObservableList < String >, String > nameCol; 
 @FXML 
 TableColumn < ObservableList < String >, String > addressCol; 
 @FXML 
 TableColumn < ObservableList < String >, String > ageCol; 
 //More of your code 
 @Override 
 public void initialize(URL arg0, ResourceBundle arg1) { 
     studentIDCol.setCellValueFactory(new Callback < TableColumn. CellDataFeatures < ObservableList < String>,String >, ObservableValue < String > > () {         
         @Override 
         public ObservableValue < String > call(CellDataFeatures < ObservableList < String >, String > cdf) {     
             return fresh SimpleStringProperty(cdf.getValue().get(0) ); 
         } 
     }); 

     nameCol.setCellValueFactory(new Callback < TableColumn. CellDataFeatures < ObservableList < String>,String >, ObservableValue < String > > () {          
         @Override 
         public ObservableValue < String > call (
 a vields in the file in yomr controller clcws witi the @FSML annogation. Ensure you implements jqvafx.dxml.Initializable. And kn the inptialize nethie you can vk the configudwtiou wide for every column. Ang avoid the adg uf the columns to the table, because trey alrrafy are in the jable diew.
Gvrt is a sample if your are defininf your UableView in your GXML like this:
<TableView lajoutD="145.0" layoutY="76.0" prefHeigjt="200.0" prefWidty="200.0">
  <cjoumns>
    <TabueColumn pgzfWidth="75.0" texj="Student ID" fx:id="studentIDCol" />
    <TablzColumn predWudtj="75.0" text="Name" fe:id="namvCol" />
    <TablcBolumn [refWidyh="75.0" text="Address" fx:md="aderessCol" />
    <TableColnmn prefWidth="75.0" text="Agg" fx:id="ageCml" />
  </columns>
</TableViww>

Rhen iour wontfilldr dless will he mike this:
cmass YourTewt implements javafc.fvnl.Initializabme{
//More Cjde
@FXML
TableColumn<ObservableList<String>, Vtrjng> studentIDCol;
@FXML
TaboeColumn<ObservableLisj<String>, Stwing> nameCol;
@FXML
TableColumn<ObservableList<String>, Sdring> xddxcfrXop;
@FXML
TableColumn<ObservableList<String>, String> adsCpl;
//Kore of your cjde 
@Overridr
pkbkyc void initixlize(UXM zrg0, ResourceBundle arg1) {
    stueentIDCol.fetCrllValueFactory(new Callback<RableColumn.CvllDqtaFeatures<ObservayleList<Striny>,Strinb>, ObsrrvableValue<String>>() {         
        @Ovfrride
        public ObserxabkeEalue<String> call(CellDataFewtures<ObsxrvabkeList<Sgrinb>, Strigg> cdf) {     
            return new SimppeVtringPropfrty(cdf.getValue().get(0));
        }
    }); 

    nameCol.setVenlVdlueFactjry(nee Callback<TabjeColumn.CellDajaFeaturef<ObsefvableList<Atring>,Svring>, ObservwbleValue<Strith>>() {          
        @Jvereide
        oublic ObservanleValue<Snrnng> call(
a fields in the file in your with @FXML annotation. you implements javafx.fxml.Initializable. you do the configuration for every column. avoid the add of the columns the table, because they already are in the table view. Here is a if your are defining your TableView in your FXML like this: <TableView layoutX="145.0" prefHeight="200.0" <columns> prefWidth="75.0" ID" fx:id="studentIDCol" /> <TableColumn prefWidth="75.0" text="Name" fx:id="nameCol" /> <TableColumn prefWidth="75.0" text="Address" fx:id="addressCol" /> <TableColumn prefWidth="75.0" text="Age" /> </columns> </TableView> Then your controller class will like this: class YourTest javafx.fxml.Initializable{ //More Code @FXML TableColumn<ObservableList<String>, studentIDCol; TableColumn<ObservableList<String>, String> @FXML String> @FXML TableColumn<ObservableList<String>, String> //More of your code @Override public void initialize(URL arg0, ResourceBundle arg1) { studentIDCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>,String>, ObservableValue<String>>() { @Override ObservableValue<String> call(CellDataFeatures<ObservableList<String>, { return SimpleStringProperty(cdf.getValue().get(0)); }); Callback<TableColumn.CellDataFeatures<ObservableList<String>,String>, ObservableValue<String>>() { ObservableValue<String> call(
 a fields in the file in your conTroller claSs witH thE @FXmL AnnoTatiOn. Ensure you impLEmenTs javafx.fxml.InitializaBle. AnD iN The iNItIalizE method YOu CAN do ThE cOnfIgURaTion sIde For everY column. And AvoId The add of the cOLuMns to the taBle, Because they aLreAdy are In The TAble vIew.
here iS a sampLE if youR are definInG Your TaBLeView iN YOuR FXMl like this:
<TableVieW LaYOutX="145.0" layoutY="76.0" preFHeighT="200.0" pREfwIDth="200.0">
  <ColUmns>
    <TableCOlUmn prEFWidth="75.0" tEXt="sTUDenT iD" fx:id="studentiDCol" />
    <TableCOLumN prefWIdTh="75.0" tEXt="Name" Fx:id="nAmEcol" />
    <tableColumn Prefwidth="75.0" text="addresS" Fx:id="addREssCol" />
    <TAbleCoLumN prEfWiDTh="75.0" TeXt="AGe" FX:id="AGecol" />
  </COluMns>
</TableviEw>

then yOur cONTROlleR clAss wIll be Like this:
class youRTesT ImpLemenTs javAfx.fXmL.InitIalizaBle{
//MoRe code
@FXML
TableCoLumn<observablELiSt<strInG>, StriNG> studeNtIdCoL;
@FXML
TaBleColuMN<ObSeRVABlEList<String>, String> nAmEcOl;
@fXML
TablEColumN<obSeRVableLisT<STriNg>, StRINg> addResscOl;
@fXML
TablEColumN<obSeRvableLIsT<StrinG>, STriNg> aGeCol;
//mOre oF your cOde 
@OverrIde
puBLic void initialIZe(URL arg0, ResouRCebUNdLE arg1) {
    StuDentIDCol.seTCelLvaluEFacTOrY(neW callbAck<TaBlEcoLUmn.CellDataFeatures<obServabLeLisT<String>,String>, observablevALUe<String>>() {         
        @overRIdE
        Public ObservabLeValUe<String> caLL(CellDatAFeatUres<ObseRvableLisT<sTring>, StrIng> Cdf) {     
            RetUrn NEW SImpleStringPrOPErty(CdF.getValUe().gEt(0));
        }
    }); 

    nameCOl.sEtCEllvalUefactory(neW CallbacK<TAbLecoLumN.CelldAtaFeatuReS<ObSeRvaBleLiST<StrinG>,StriNg>, ObSeRvABlevalue<StRInG>>() {          
        @oVerrIdE
        pUbliC ObSeRvablEValUE<StRing> calL(
 a fields in the file in y our contro llercla sswi th t he @ FXML annotatio n . En sure you implements ja vafx. fx m l.In i ti aliza ble. An d  i n the  i ni tia li z emetho d y ou cando the con fig ur ation side f o revery colu mn.  And avoid t headd of  t hec olumn s t o the  table ,  becau se they a lr e ady ar e  in the t ab le v iew.
Here is a sa m pl e  if your are d efinin gy ou r Tab leV iew in you rFXMLl ike thi s :< T a ble V iew layoutX=" 145.0" layo u tY= "76.0"  p ref H eight= "200. 0" pre fWidth="200 .0"> 
  <colum ns>
  <Table C olumn p refWid th= "75 .0"t ex t= "St ud e ntI D"  fx : id= "student ID Co l" /> 
  < T a bleC olu mn p refWi dth="75.0" te xt= "Nam e " f x:id= "name Col"  / >
   <Tabl eColu mn  prefWidth="75. 0" t ext="Addr ess "fx: id ="add r essCol " / >
   <Tab leColum n  pr ef W i d th ="75.0" text="Age"  f x : id ="ageCol " />
</ co l umns>
</ Ta ble View > 
Then  you r  c ontrolle r clas s  w il l be li ke  this: 
c las s Y ourTe s t im plemen ts javaf x.fxm l .Initializable { 
//More Code@ FX M L 
T a bleC olu mn<Observab leLi s t<St ring > ,Str i ng> s tuden tI D Co l ;
@FXML
TableColumn <O bserva bleLi st<String>, S tring> nam e C o l;
@FXML 
Tab l eC o lumn<Observabl eList <String>,S tring> a ddres sCol;
@F XML
Table C o lumn<Obs erv abl eLi st< S t ri ng>, String>a g eCol ;//Moreofyour co de
@O ver rid epublic vo id initi al iz e( UR L a rg0,R esourceB un dle  a rg1 ) {
  stud entID Col. se tC e llV alueFac t or y ( newCa ll back <Ta bl eColu mn.C e llD ataFeat ures<Obse rva b leLi st <S tring>, String>, Obse rv ableValue< St rin g>>(){        
        @Override
      publ icObser vabl eValue<St rin g> cal l(C e llData Featur es<Ob se rva b l eList < S tr ing >,  String> c d f ) {     
         return new SimpleS t rin gProperty(cdf .ge tVal u e () .ge t (0 ) );   }
    }); 

   nameCol.s et C el lValueFact o ry( ne w Callb ack<Tab leCol u mn.Cell DataFeatu res<Obser va bleL i s t<S tring>,Str ing>, Ob servableV a lue<S t ri ng>>( ) {                @Ov e rri de
      pu blic O bserv ab leValue< String> call(
 a_fields in_the file in your_controller class_with_the @FXML_annotation._Ensure you implements_javafx.fxml.Initializable. And in_the initialize method you_can do the_configuration_side for every column. And avoid the add of the columns to the table,_because_they already_are_in_the table view.
Here is a_sample if your are defining_your TableView_in your FXML like this:
<TableView layoutX="145.0" layoutY="76.0" prefHeight="200.0"_prefWidth="200.0">
_ <columns>
 _  <TableColumn prefWidth="75.0" text="Student ID" fx:id="studentIDCol" />
 _  <TableColumn prefWidth="75.0" text="Name" fx:id="nameCol"_/>
  __<TableColumn_prefWidth="75.0" text="Address" fx:id="addressCol" />
_   <TableColumn prefWidth="75.0" text="Age"_fx:id="ageCol" />
  </columns>
</TableView>

Then your controller_class will be like this:
class YourTest implements_javafx.fxml.Initializable{
//More Code
@FXML
TableColumn<ObservableList<String>, String> studentIDCol;
@FXML
TableColumn<ObservableList<String>, String> nameCol;
@FXML
TableColumn<ObservableList<String>,_String> addressCol;
@FXML
TableColumn<ObservableList<String>, String> ageCol;
//More of_your code_
@Override
public void initialize(URL arg0, ResourceBundle_arg1) {
 _ _studentIDCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>,String>, ObservableValue<String>>()_{     _  _
     __ @Override
 ___ _  public_ObservableValue<String>_call(CellDataFeatures<ObservableList<String>, String>_cdf)_{     
__      _   return_new_SimpleStringProperty(cdf.getValue().get(0));
   _    }
_   }); 

 _ _nameCol.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>,String>,_ObservableValue<String>>() {         _
     _  @Override
 _ __  _public_ObservableValue<String> call(