将来自一个类中的JText的信息显示到另一个类中的DefaultTable

时间:2015-05-10 18:41:27

标签: java

为什么我无法使用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 个答案:

答案 0 :(得分:0)

这是因为在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(Save)中的textarea test按钮,而不是形成其他MovieDatabase帧。我认为这是基本的想法,你应该用{添加按钮替换Save框架中的MovieDatabase按钮,将电影添加到数据库,然后如果用户需要,他可以使用保存来保存带有电影的整个表格。