Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我试图将XML数据放在jtable中,但它没有';t在面板上显示任何结果而不显示任何错误_Java_Xml_Swing_User Interface_Jtable - Fatal编程技术网

Java 我试图将XML数据放在jtable中,但它没有';t在面板上显示任何结果而不显示任何错误

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

我试图将Movies.java帮助获取的XML文件数据放在JTable中,但我做不到。它没有显示任何类型的错误,但它也没有将错误放在面板中

myXmlFile:

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;
    }
}