所以我在上这些课

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/

10-10 14:32