http://ibb.co/hvrdbR private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
//删除现有面板String xmldoc = "./src/com/ui/Data.xml";试试{JLabel label2 = new JLabel();
文件fXmlFile = new File(xmldoc); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement()正常化(); NodeList nList = doc.getElementsByTagName("username"); for(int temp = 0; temp <nList.getLength(); temp){Node nNode = nList.item(temp); if(nNode.getNodeType()== Node.ELEMENT_NODE){Element eElement =(Element)nNode; String text = eElement.getTextContent();的System.out.println(文本);
jPanel7.setBackground(Color.WHITE); jPanel7.setLayout(new FlowLayout()); jPanel7.add(LABEL2); label2.setText(文本); label2.setPreferredSize(new Dimension(100,40)); label2.setFont(new Font("Times New Roman",Font.BOLD,24));
}}}
catch(Exception ex){System.out.println("Database exception : userExists()"); }}
仅创建标签并粘贴所有用户名
1 回答
在循环的每次迭代中,
jPanel7.add(label2)
被调用一次 . 但是,您反复使用相同的JLabel
实例 .会发生什么?
JPanel.add(Component)
在java.awt.Container.add(Component)
中定义,其中委托给java.awt.Container.addImpl(Component, Object, int) . 并在代码中:试图将
Component
添加到已经包含此Component
的Container
将导致在实践中不会发生任何事情 . 因此,最后,您的jPanel7
只有一个孩子--label2
.什么是正确的做法?