在类终止后返回值

时间:2016-05-30 17:04:30

标签: java

美好的一天。

我正在制作一个JPanel类,其中包含用户输入的控件。 JPanel类将由Parent类调用,并将其插入到JDialog中。

我想我可以通过setDialogData方法传递我想要的值,这样我就可以自定义标签的文本。但这是问题所在。我在JPanel里面有一个保存按钮,我想弄清楚,在JDialog关闭之前,我将如何通过Parent类发送数据?

public class Dialog_Input extends javax.swing.JPanel {

public Dialog_Input() {
    initComponents(); //lets assume this has two buttons and a couple of controls..
}
public void setDialogData(String id, String name, String desc){
    lblDialog_ID.setText(id);
    lblDialog_Name.setText(name);
    lblDialog_Desc.setText(desc);
}

1 个答案:

答案 0 :(得分:1)

首先,你应该添加一个onClose监听器 - 它将变量设置为close ... 之后在父类中添加一些变量,这些变量将在Dialog Closes时设置,并设置一些setter。 之后,在您的子类中添加一个“Parent-class-object”变量,并将此对象添加到构造函数中 在构造函数中将类JPanel设置为传递的JPanel,如下所示:

public class Dialog_Input extends javax.swing.JPanel {

private JFrame/*or other Object of parent Class*/ parentFrame; 

public Dialog_Input(JFrame parent) {
    parentFrame = parent;
    initComponents(); //lets assume this has two buttons and a couple of controls..
    //setup onCloseListener
}
public void setDialogData(String id, String name, String desc){
    lblDialog_ID.setText(id);
    lblDialog_Name.setText(name);
    lblDialog_Desc.setText(desc);
}

//method being called on close
private void onClose(){
    parentFrame.setA(settingA);
    parentFrame.setB(settingB);
    parentFrame.setC(settingC);
}

最后调用带有this的JPanel / Dialog作为要传递的对象