美好的一天。
我正在制作一个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);
}
答案 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作为要传递的对象