Java 我试图将XML数据放在jtable中,但它没有';t在面板上显示任何结果而不显示任何错误
我试图将Movies.java帮助获取的XML文件数据放在JTable中,但我做不到。它没有显示任何类型的错误,但它也没有将错误放在面板中 myXmlFile:Java 我试图将XML数据放在jtable中,但它没有';t在面板上显示任何结果而不显示任何错误,java,xml,swing,user-interface,jtable,Java,Xml,Swing,User Interface,Jtable,我试图将Movies.java帮助获取的XML文件数据放在JTable中,但我做不到。它没有显示任何类型的错误,但它也没有将错误放在面板中 myXmlFile: public类CreateMovieXML{ 私有静态ArrayList moviesList=新ArrayList(); 公共CreateMovieXML(){ 试一试{ readFile(); }catch(filenotfounde异常){ //TODO自动生成的捕捉块 e、 printStackTrace(); } } //D
public类CreateMovieXML{
私有静态ArrayList moviesList=新ArrayList();
公共CreateMovieXML(){
试一试{
readFile();
}catch(filenotfounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
//DOM编写器
@抑制警告(“未使用”)
公共静态void writeIntoFile(字符串标题、字符串类型、字符串控制器、字符串持续时间、字符串年份)
抛出ParserConfiguration异常、SAXException、IOException{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document=db.parse(“Movies.xml”);
Element elementRoot=document.getDocumentElement();
收藏电影=新建ArrayList();
添加(新电影());
用于(电影:电影){
Element电影=document.createElement(“电影”);
Element elementtitle=document.createElement(“标题”);
elementtitle.appendChild(document.createTextNode(title));
elementMovie.appendChild(elementtitle);
Element elementgenre=document.createElement(“genre”);
elementgenere.appendChild(document.createTextNode(genere));
elementMovie.appendChild(elementgenere);
Element elementdirector=document.createElement(“director”);
elementdirector.appendChild(document.createTextNode(director));
elementMovie.appendChild(elementdirector);
Element元素持续时间=document.createElement(“持续时间”);
elementduration.appendChild(document.createTextNode(duration));
elementMovie.appendChild(elementduration);
元素elementyear=document.createElement(“年”);
elementyear.appendChild(document.createTextNode(year));
elementMovie.appendChild(elementyear);
elementRoot.appendChild(elementMovie);
}
DOMSource输入=新的DOMSource(文档);
String path=“movies.xml”;
Result res=新的StreamResult(路径);
TransformerFactory tf=TransformerFactory.newInstance();
试一试{
变压器=tf.新变压器();
setOutputProperty(OutputKeys.OMIT_XML_声明,“no”);
transformer.setOutputProperty(OutputKeys.INDENT,“是”);
试一试{
变换(输入,res);
System.out.println(“数据写入成功”);
}捕获(转换异常e){
e、 printStackTrace();
}
}捕获(TransformerConfiguration异常e){
e、 printStackTrace();
}
}
//DOM阅读器
public void readFile()引发FileNotFoundException{
试一试{
moviesList.clear();
文件输入=新文件(“movies.xml”);
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
文档doc=db.parse(输入);
doc.getDocumentElement().normalize();
//System.out.println(“根元素:”+
//doc.getDocumentElement().getNodeName());
NodeList NodeList=doc.getElementsByTagName(“电影”);
//System.out.println(“-------------------------------”;
对于(int-temp=0;temp
您从未在表格模型中添加任何内容
谢谢,它可以正常工作
@SuppressWarnings("serial")
public class TabMovieListPanel extends JPanel {
private static CreateMovieXML moviexml;
private static JButton del;
JTable labels;
private DefaultTableModel model;
private JTable jTable = new JTable(model);
private TableRowSorter<TableModel> rowSorter = new TableRowSorter<>(jTable.getModel());
private JTextField jtfFilter = new JTextField();
private JButton jbtFilter = new JButton("Filter");
public void TabMovieListPanel() {
moviexml = new CreateMovieXML();
String[] columnNames = { "TITLE", "GENERE", "DURATION", "DIRECTOR", "YEAR" };
for (Movies currentValue : moviexml.getMoviesList()) {
System.out.println(currentValue.toString());
Object[][] data = { { currentValue.getTitle(), currentValue.getGenere(), currentValue.getDuration(),
currentValue.getDirector(), currentValue.getYear() } };
}
jTable.setRowSorter(rowSorter);
JPanel panel = new JPanel(new BorderLayout());
setLayout(new BorderLayout());
jtfFilter.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
String text = jtfFilter.getText();
if (text.trim().length() == 0) {
rowSorter.setRowFilter(null);
} else {
rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
}
}
@Override
public void removeUpdate(DocumentEvent e) {
String text = jtfFilter.getText();
if (text.trim().length() == 0) {
rowSorter.setRowFilter(null);
} else {
rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
}
}
@Override
public void changedUpdate(DocumentEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
});
del = new JButton("Delete");
del.setFont(new Font("Stencil", Font.ITALIC, 20));
del.setPreferredSize(new Dimension(100, 40));
del.addActionListener(new DelListener());
panel.add(new JLabel("Specify a word to match:"), BorderLayout.WEST);
panel.add(jtfFilter, BorderLayout.CENTER);
add(panel, BorderLayout.SOUTH);
add(new JScrollPane(jTable), BorderLayout.CENTER);
add(del);
}
private static class DelListener implements ActionListener {
@SuppressWarnings("static-access")
@Override
public void actionPerformed(ActionEvent evt) {
}
};
void reload() throws IOException {
this.removeAll();
// this.loadDataIntoPanel();
}
}
public class Movies {
private String title;
private String genere;
private String director;
private String duration;
private String year;
public Movies(String title, String genere, String director, String duration, String year) {
this.title = title;
this.genere = genere;
this.director = director;
this.duration = duration;
this.year = year;
}
public Movies() {
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getGenere() {
return genere;
}
public void setGenere(String genere) {
this.genere = genere;
}
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
public String getDuration() {
return duration;
}
public void setDuration(String duration) {
this.duration = duration;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
@Override
public String toString() {
return title + "," + genere + "," + director + "," + duration + "," + year;
}
}
public class CreateMovieXML {
private static ArrayList<Movies> moviesList = new ArrayList<Movies>();
public CreateMovieXML() {
try {
readFile();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// DOM WRITER
@SuppressWarnings("unused")
public static void writeIntoFile(String title, String genere, String director, String duration, String year)
throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse("Movies.xml");
Element elementRoot = document.getDocumentElement();
Collection<Movies> movies = new ArrayList<Movies>();
movies.add(new Movies());
for (Movies movie : movies) {
Element elementMovie = document.createElement("movie");
Element elementtitle = document.createElement("title");
elementtitle.appendChild(document.createTextNode(title));
elementMovie.appendChild(elementtitle);
Element elementgenere = document.createElement("genere");
elementgenere.appendChild(document.createTextNode(genere));
elementMovie.appendChild(elementgenere);
Element elementdirector = document.createElement("director");
elementdirector.appendChild(document.createTextNode(director));
elementMovie.appendChild(elementdirector);
Element elementduration = document.createElement("duration");
elementduration.appendChild(document.createTextNode(duration));
elementMovie.appendChild(elementduration);
Element elementyear = document.createElement("year");
elementyear.appendChild(document.createTextNode(year));
elementMovie.appendChild(elementyear);
elementRoot.appendChild(elementMovie);
}
DOMSource input = new DOMSource(document);
String path = "movies.xml";
Result res = new StreamResult(path);
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
try {
transformer.transform(input, res);
System.out.println("Data written successfully");
} catch (TransformerException e) {
e.printStackTrace();
}
} catch (TransformerConfigurationException e) {
e.printStackTrace();
}
}
// DOM READER
public void readFile() throws FileNotFoundException {
try {
moviesList.clear();
File input = new File("movies.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(input);
doc.getDocumentElement().normalize();
// System.out.println("Root element :" +
// doc.getDocumentElement().getNodeName());
NodeList nodeList = doc.getElementsByTagName("movie");
// System.out.println("----------------------------");
for (int temp = 0; temp < nodeList.getLength(); temp++) {
Node node = nodeList.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) node;
Movies movie = new Movies(eElement.getElementsByTagName("title").item(0).getTextContent(),
eElement.getElementsByTagName("genere").item(0).getTextContent(),
eElement.getElementsByTagName("duration").item(0).getTextContent(),
eElement.getElementsByTagName("director").item(0).getTextContent(),
eElement.getElementsByTagName("year").item(0).getTextContent());
moviesList.add(movie);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public ArrayList<Movies> getMoviesList() {
return moviesList;
}
}