所以我在上这些课
public class Init {
...
JFrame addStream = new AddStream();
addStream.setVisible(true);
addStream.setLocationRelativeTo(null);
addStream.getData(); //not working
}
public class AddStream extends javax.swing.JFrame {
private String nameData, urlData, qualityData;
/** Creates new form AddStream */
public AddStream() {
initComponents();
}
private void initComponents() {
...
}
private void addActionPerformed(java.awt.event.ActionEvent evt) {
nameData = name.getText();
urlData = url.getText();
qualityData = quality.getSelectedItem().toString();
}
public String[] getData() {
return new String[]{nameData, urlData, qualityData};
}
}
请注意,课程没有完成,只是片段。
当用户单击“添加”按钮(addActionPerformed)时,值将保存到AddStream类中的局部变量中,并由getData()返回。
我遇到的问题是addStream.getData();,我得到“找不到符号”
有没有一种方法可以将数据从AddStream JFrame获取到Init类?
最佳答案
通过更改以下行可以轻松解决您的问题:
JFrame addStream = new AddStream();
对此:
AddStream addStream = new AddStream();
代码中发生的事情是,您试图在
JFrame
上不存在的JFrame
上调用方法,该方法仅在AddStream
中存在。即使在这种情况下,您的JFrame
是-a AddStream
,除非您告诉编译器它是-a AddStream
,否则编译器也会禁止这样做。您可以使用我展示给您的代码来做到这一点。另一种方法是在通话中进行转换。假设您从上面使用代码,然后可以在最后一行执行此操作:
((AddStream) addStream).getData();
关于java - 从另一个框架获取值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16533874/