为什么我无法使用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);
}
}
答案 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
按钮,将电影添加到数据库,然后如果用户需要,他可以使用保存来保存带有电影的整个表格。