由6个项目组成的数组全部进入JTable的一个单元格,而不是每个项目都进入单元格

问题描述

我有一个二维数组,我想在JTable中显示,但是当我尝试添加它时,正在发生的事情是将6个项目的每个数组从左到右添加到每个JTable单元中,而不是每个6个项目位于不同的单元格中。我尝试了多种方法将我的Array放入JTable,这是我最近的方法

有人可以帮我提供我的代码吗?

public static void main(String argv[]) throws SAXException,IOException,ParserConfigurationException,XMLStreamException,XPathExpressionException {
    
    ArrayList<rollingS> s = new ArrayList<rollingS>();
    Hashtable<String,Hashtable<String,rollingS>> rowArray = new Hashtable<>();
    String fileName = "https://api.bmreports.com/BMRS/LATESTACCEPTS/v1?APIKey=xxxxxxxxx&ServiceType=XML";
    
    String xml = crunchifyGetURLContents(fileName);
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(new InputSource(new StringReader(xml)));
    XPath xPath =  XPathFactory.newInstance().newXPath();
    String expression = "/response/responseBody/responseList/item";    
    NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(document,XPathConstants.NODESET);
    
    for (int i = 0; i < nodeList.getLength(); i++) 
    {
    Node nNode = nodeList.item(i);
    
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
    Element eElement = (Element) nNode;
    String one = eElement.getElementsByTagName("recordtype").item(0).getTextContent();
    String two = eElement.getElementsByTagName("bmuName").item(0).getTextContent();
    String three = eElement.getElementsByTagName("bidOfferAcceptanceNumber").item(0).getTextContent();
    String four = eElement.getElementsByTagName("acceptanceTime").item(0).getTextContent();
    String five = eElement.getElementsByTagName("fromTime").item(0).getTextContent();
    String six = eElement.getElementsByTagName("activeFlag").item(0).getTextContent();
    
    rollingS rollingS = new rollingS(one,two,three,four,five,six);
    
    
    s.add(rollingS);
    
    }
    
    }
    String students[] = { "S1","S2","S3","S4","S5","S6"};
    int numberOfContacts = s.size()/6;
    Object[][] newArrayContent = new Object[numberOfContacts][6];
    for(int x = 0; x<numberOfContacts; x++){
    for(int z = 0; z < 6; z++){
    int y = 6 * x;
    newArrayContent [x][z] =    s.get(y+z); 
    System.out.println(newArrayContent [x][z].toString());
    
    }
    
    JTable table = new JTable(newArrayContent,students);
    
    
    
    Font font = new Font("Verdana",Font.PLAIN,12);
    table.setFont(font);
    table.setRowHeight(30);
    JFrame frame = new JFrame();
    frame.setSize(600,400);
    frame.add(new JScrollPane(table));
    frame.setVisible(true);
    
    }
    }
    
    
    
    private static String crunchifyGetURLContents(String oracle) 
    {
    System.out.println("https : " + oracle);
    StringBuilder sb = new StringBuilder();
    URLConnection urlConn = null;
    InputStreamReader in = null;
    try {
    URL url = new URL(oracle);
    urlConn = url.openConnection();
    if (urlConn != null)
    urlConn.setReadTimeout(60 * 1000);
    if (urlConn != null && urlConn.getInputStream() != null) {
    in = new InputStreamReader(urlConn.getInputStream(),Charset.defaultCharset());
    BufferedReader bufferedReader = new BufferedReader(in);
    if (bufferedReader != null) {
    int cp;
    while ((cp = bufferedReader.read()) != -1) {
    sb.append((char) cp);
    }
    bufferedReader.close();
    }
    }
    in.close();
    } catch (Exception e) {
    throw new RuntimeException("Exception while calling URL:" + oracle,e);
    }
    
    return sb.toString();
    }}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)