Ошибка: в списке столбцов TableView обнаружены повторяющиеся столбцы таблицы - PullRequest
0 голосов
/ 24 мая 2018

Я устанавливаю значения столбцов таблицы из этой функции, т. Е. SetTable (вызывается при нажатии одной кнопки)

На самом деле есть две таблицы, но эта устанавливает значение столбцов таблицы для первойтолько таблица

public class abc {   
   public void setTable(ActionEvent event)throws IOException{
        //i am getting table controller because tableview is in another scene.
        FXMLLoader fxmlLoader = new FXMLLoader();
        fxmlLoader.setLocation(getClass().getResource("table_scene.fxml"));
        fxmlLoader.load();
        table_scene controller = fxmlLoader.getController();
        controller.C1.setCellValueFactory(new PropertyValueFactory<>("Classs"));
        controller.N1.setCellValueFactory(new PropertyValueFactory<>("Name"));
        controller.S1.setCellValueFactory(new PropertyValueFactory<>("Sec"));
        controller.table1.getColumns().addAll(controller.C1,controller.N1,controller.S1);
        controller.table1.setItems(getDetails());

public ObservableList<TableItems> getDetails() {
  ObservableList<TableItems> list = FXCollections.observableArrayList();

        //Here are jdbc codes for retreiving the value of n1,c1,v1 and so on.
        //Tell me if i should add this code

        list.add(new TableItems(n1,c1,se1));
        list.add(new TableItems(n2,c2,se2));
        list.add(new TableItems(n3,c3,se3));
        list.add(new TableItems(n4,c4,se4));
       return list;
    }
}

Это контроллер для table_scene.fxml, в котором находятся таблицы.

public class table_scene {
    @FXML
    TableView<TableItems> table1;
    @FXML
    TableView<TableItems> table2;
    @FXML
    TableColumn<TableItems,String> N1;
    @FXML
    TableColumn<TableItems,Integer> C1;
    @FXML
    TableColumn<TableItems,String> S1;
    @FXML
    TableColumn<TableItems,String> N2;
    @FXML
    TableColumn<TableItems,Integer> C2;
    @FXML
    TableColumn<TableItems,String> V2;
}

Это другая функция , вызываемая из другойсцена, где я устанавливаю значения в столбце таблицы другого табличного представления. Есть две таблицы .Эта функция устанавливает значения для столбца таблицы другой таблицы.

   public class abc2 {   
   public void setTable(ActionEvent event)throws IOException{
        //i am getting table controller because tableview is in another scene.
        FXMLLoader fxmlLoader = new FXMLLoader();
        fxmlLoader.setLocation(getClass().getResource("table_scene.fxml"));
        fxmlLoader.load();
        table_scene controller = fxmlLoader.getController();
        controller.C2.setCellValueFactory(new PropertyValueFactory<>("Classs"));
        controller.N2.setCellValueFactory(new PropertyValueFactory<>("Name"));
        controller.S2.setCellValueFactory(new PropertyValueFactory<>("Sec"));
        controller.table2.getColumns().addAll(controller.C2,controller.N2,controller.S2);
        controller.table2.setItems(getDetails());

  public ObservableList<TableItems> getDetails() {
     ObservableList<TableItems> list = FXCollections.observableArrayList();

       //Here are jdbc codes for retreiving the value of n1,c1,v1 and so on.
        //Tell me if i should add this code

        list.add(new TableItems(n1,c1,se1));
        list.add(new TableItems(n2,c2,se2));
        list.add(new TableItems(n3,c3,se3));
        list.add(new TableItems(n4,c4,se4));
       return list;
}

}

Это класс методов получения и установки.

public class TableItems {
    private String Name;
    private int Classs;
    private String Sec;

   public TableItems(String Name, int Class, String Sec){
      this.Name=Name;
      this.Classs=Class;
      this.Sec=Sec;

}


public int getClasss() {
    return Classs;
}

public void setClasss(int classs) {
    Classs = classs;
}

public String getName() {
    return Name;
}
public void setName(String name) {
    Name = name;

}

public String getSec() {
    return Sec;
}

public void setSec(String sec) {
    Sec = sec;
}

}

Это ошибка, которой я являюсьполучение ..

EstablishedException in thread "JavaFX Application Thread" java.lang.IllegalStateException: Duplicate TableColumns detected in TableView columns list with titles 'Class', ' Name', 'Sec', 
at javafx.scene.control.TableView$5.onChanged(TableView.java:626)
at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
at javafx.collections.ModifiableObservableListBase.addAll(ModifiableObservableListBase.java:102)
at javafx.collections.ObservableListBase.addAll(ObservableListBase.java:245)
at sample.CaptainInfo.insertdata(CaptainInfo.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8413)
at javafx.scene.control.Button.fire(Button.java:185)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
at java.lang.Thread.run(Unknown Source)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...