Java 根据列数显示表格标题

Java 根据列数显示表格标题,java,javafx,Java,Javafx,我试图构建一个显示字符串的数据库读取器,但我试图将表排列成4列,其中包含标题ID、名称、用户名和密码。到目前为止,我只想显示4列,但它显示了8列,标题为ID、Name、userName和password。循环中的数据变量有两组字符串值,所以我认为这就是为什么它显示8列 私有void populateTextAreaObservableList数据{ StringBuilder=新的StringBuilder; builder.append; builder.appendTest表; builde

我试图构建一个显示字符串的数据库读取器,但我试图将表排列成4列,其中包含标题ID、名称、用户名和密码。到目前为止,我只想显示4列,但它显示了8列,标题为ID、Name、userName和password。循环中的数据变量有两组字符串值,所以我认为这就是为什么它显示8列

私有void populateTextAreaObservableList数据{ StringBuilder=新的StringBuilder; builder.append; builder.appendTest表; builder.append; 对于列表列名称:数据{ builder.appendID; 建筑商:尼卡姆; builder.appendUsename; builder.appendPassword; } builder.append; builder.append; webView.getEngine.loadContentbuilder.toString; } 私有ObservableList searchString searchTerm引发SQLException{ ObservableList=FXCollections.observableArrayList; list.addList.of3,James,admin,admin; list.addList.of2,jaylen,管理员,管理员; 退货清单; } 您在数据上循环,它似乎有两个项,因此循环运行两次,添加两次列标题

简单的解决方案:删除循环。

您正在对数据进行循环,该数据似乎有两项,因此循环运行两次,添加两次列标题


简单的解决方案:删除循环。

我的新解决答案

        
        StringBuilder builder = new StringBuilder();
        
        builder.append("<table style=\"margin: auto;width: 90%;\" border=\"1\">");
        builder.append("<caption>Test Table</caption>");
        builder.append("<tr style=\"height: 2rem;\">");
        
        builder.append("<th>ID</th>");
        builder.append("<th>Nickame</th>");
        builder.append("<th>Usename</th>");
        builder.append("<th>Password</th>");
        builder.append("</tr>");

        for(List<String>row : data) {
            builder.append("<tr>");
            for(String values : row) {
                builder.append("<td>"+values+"</td>");
            }
           builder.append("</tr>");
        }

        builder.append("</tr>");
        builder.append("</table>");
        
        webView.getEngine().loadContent(builder.toString());
    }
    private ObservableList<List<String>> search(String searchTerm) throws SQLException {

        ObservableList<List<String>> list = FXCollections.observableArrayList();

        list.add(List.of("3", "James", "admin", "admin"));
        list.add(List.of("2", "jaylen", "admin", "admin"));
        return list;
    }

我的新答案是坚定的

        
        StringBuilder builder = new StringBuilder();
        
        builder.append("<table style=\"margin: auto;width: 90%;\" border=\"1\">");
        builder.append("<caption>Test Table</caption>");
        builder.append("<tr style=\"height: 2rem;\">");
        
        builder.append("<th>ID</th>");
        builder.append("<th>Nickame</th>");
        builder.append("<th>Usename</th>");
        builder.append("<th>Password</th>");
        builder.append("</tr>");

        for(List<String>row : data) {
            builder.append("<tr>");
            for(String values : row) {
                builder.append("<td>"+values+"</td>");
            }
           builder.append("</tr>");
        }

        builder.append("</tr>");
        builder.append("</table>");
        
        webView.getEngine().loadContent(builder.toString());
    }
    private ObservableList<List<String>> search(String searchTerm) throws SQLException {

        ObservableList<List<String>> list = FXCollections.observableArrayList();

        list.add(List.of("3", "James", "admin", "admin"));
        list.add(List.of("2", "jaylen", "admin", "admin"));
        return list;
    }

卸下for循环。但是保留当前在for循环中的四个appender语句。顺便说一句,这似乎不是DataTables问题-因此您可能应该从问题中删除该标记。@andrewjames感谢您的帮助,将删除标记!您已经完成了解决方案的90%——您的直觉是正确的。删除for循环。但是保留当前在for循环中的四个appender语句。顺便说一句,这似乎不是DataTables问题-因此您可能应该从问题中删除该标记。@andrewjames感谢您的帮助,将删除标记!你已经完成了90%的解决方案-你的直觉是正确的。谢谢你,我继续并解决了它。谢谢你,我继续并解决了它。