有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java显示从一个类中的JText到另一个类中的DefaultTable的信息

为什么我不能使用get方法(从一个类中的JText)检索信息,并在另一个类中的默认表中显示它

请看一下我的代码:http://pastebin.com/cEJ4dyqA

if(event.getSource()=new1) {

        for (int i = 0; i < db1.getMovies().size(); i++) {
                Movie movie = db1.getMovies().get(i);
        {
            String data1 = RunMovie.getTitle();
            System.out.println("Say:" + RunMovie.getTitle());
            String data2 = RunMovie.getActor();
            String data3 = RunMovie.getDirector();


           Object[] row = {data1, data2,data3};

           DefaultTableModel model1 = (DefaultTableModel) table.getModel();

            model.addRow(row);

        }
     }

共 (1) 个答案

  1. # 1 楼答案

    这是因为在RunMovie中声明并初始化3 JTextFields

    static  JTextField titlet = new JTextField(10);
    static  JTextField actort = new JTextField(10);
    static  JTextField directort = new JTextField(10);
    

    然后创建另一个字段作为局部方法变量:

    JTextField titlet = new JTextField(10);
    JTextField actort = new JTextField(10);
    JTextField directort = new JTextField(10);
    

    创建两组独立的对象。实际上,您的方法getTitle()getActor()getDirector()从类字段中获取数据,但您将数据输入到本地JTextFields,因此总是得到空字符串。您应该在RunMovie中声明所有JTextFields(例如),如下所示:

    static  JTextField titlet;
    

    在方法中,以这种方式初始化它:

    titlet = new JTextField(10);
    

    但是,要向表中添加位置,需要使用主GUI(textarea test)中的Save按钮,而不是形成额外的MovieDatabase框架。我认为这是一个基本的想法,你应该用Add按钮来替换MovieDatabase框架中的Save按钮,它可以将电影添加到数据库中,如果用户需要,他可以使用save来用电影保存整个表