1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Colunas duplicadas no TableView

Boa noite, bom dia e boa tarde a todos.,

Meu tableview da o exception abaixo:

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:363)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:303)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:875)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(LauncherImpl.java:157)
    at com.sun.javafx.application.LauncherImpl$$Lambda$49/28230490.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Children: duplicate children added: parent = TableRow@1e360af[styleClass=cell indexed-cell table-row-cell]'null'
    at javafx.scene.Parent$2.onProposedChange(Parent.java:450)
    at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:113)
    at com.sun.javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:516)
    at com.sun.javafx.scene.control.skin.TableRowSkinBase.init(TableRowSkinBase.java:147)
    at com.sun.javafx.scene.control.skin.TableRowSkin.<init>(TableRowSkin.java:64)
    at javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:212)
    at javafx.scene.control.Control.impl_processCSS(Control.java:890)
    at javafx.scene.Node.processCSS(Node.java:8858)
    at javafx.scene.Node.applyCss(Node.java:8955)
    at com.sun.javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1923)
    at com.sun.javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1762)
    at com.sun.javafx.scene.control.skin.VirtualFlow.getCellLength(VirtualFlow.java:1838)
    at com.sun.javafx.scene.control.skin.VirtualFlow.computeViewportOffset(VirtualFlow.java:2470)
    at com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1186)
    at javafx.scene.Parent.layout(Parent.java:1074)
    at javafx.scene.Parent.layout(Parent.java:1080)
    at javafx.scene.Parent.layout(Parent.java:1080)
    at javafx.scene.Parent.layout(Parent.java:1080)
    at javafx.scene.Parent.layout(Parent.java:1080)
    at javafx.scene.Parent.layout(Parent.java:1080)
    at javafx.scene.Parent.layout(Parent.java:1080)
    at javafx.scene.Scene.doLayoutPass(Scene.java:532)
    at javafx.scene.Scene.preferredSize(Scene.java:1612)
    at javafx.scene.Scene.impl_preferredSize(Scene.java:1686)
    at javafx.stage.Window$9.invalidated(Window.java:765)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
    at javafx.stage.Window.setShowing(Window.java:841)
    at javafx.stage.Window.show(Window.java:856)
    at javafx.stage.Stage.show(Stage.java:255)
    at SCO.SC.SC.start(SC.java:297)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(LauncherImpl.java:821)
    at com.sun.javafx.application.LauncherImpl$$Lambda$52/20375621.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(PlatformImpl.java:323)
    at com.sun.javafx.application.PlatformImpl$$Lambda$46/11567059.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$164(PlatformImpl.java:292)
    at com.sun.javafx.application.PlatformImpl$$Lambda$48/5582448.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(PlatformImpl.java:291)
    at com.sun.javafx.application.PlatformImpl$$Lambda$47/30452001.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$141(WinApplication.java:102)
    at com.sun.glass.ui.win.WinApplication$$Lambda$38/2075313.run(Unknown Source)
    ... 1 more
Exception running application SCO.SC.SC

Percebi que são colunas duplicadas por causa dessa linha do código Caused by: java.lang.IllegalArgumentException: Children: duplicate children added: parent = TableRow@12a080f[styleClass=cell indexed-cell table-row-cell]'null'. E essa e a parte que adiciono as colunas e linhas:

while(rs.next()){
                linha ++;
                int l = linha;
                System.out.println(l);
                String sq1 = rs.getString("NOME");
                String sq2 = rs.getString("DIVIDA");
                String sq3 = rs.getString("PAGAMENTO");
                String sq4 = rs.getString("DATADV");
                @SuppressWarnings("unused")
                String sa[] = {sq1,sq2,sq3,sq4};
                ObservableList<Person> dados = FXCollections.observableArrayList(IntStream.range(0, 1000).mapToObj(i -> new Person(sq1,sq2,sq3,sq4)).collect(Collectors.toList()));

                FilteredList<Person> listaFiltravel = new FilteredList<>(dados, p -> true);
                c1.setCellValueFactory(new PropertyValueFactory<Person, String>(
                        "Nome"));
                c2.setCellValueFactory(new PropertyValueFactory<Person, String>(
                        "Divida"));
                c3.setCellValueFactory(new PropertyValueFactory<Person, String>(
                        "Pagamento"));
                c4.setCellValueFactory(new PropertyValueFactory<Person, String>(
                        "Data"));

                c1.setText("Nome");

                c2.setText("Divida");

                c3.setText("Pagamento");

                c4.setText("Vencimento");

                jtc.getColumns().addAll(c1,c2,c3,c4);

                jtc.getItems().addAll(listaFiltravel);

                jtfp.textProperty().addListener((obs, velho, texto) -> {
                    // aqui como um teste damos uma função de filtro usando o texto do
                    // label e o contains (pode lançar NPE)
                    listaFiltravel.setPredicate(p -> {
                        boolean filtra = p.getNome().contains(texto.toLowerCase());
                        System.out.println(filtra + " - " + texto);
                        return filtra;
                    });
                    jtc.getItems().setAll(listaFiltravel);
                });

            }

Toda vez que adiciono uma linha duplica as colunas, no swing tem um erro parecido, mas como eu faço no javafx? Alguém pode me ajudar?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags javafx sql banco-de-dados java ou faça a sua própria pergunta.