问题描述
我有一个二维数组,我想在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 (将#修改为@)