【问题标题】:How to pass value from JInternalFrame to JDialog如何将值从 JInternalFrame 传递到 JDialog
【发布时间】:2014-04-25 05:37:08
【问题描述】:

我只想知道如何将字符串之类的值从JInternalFrame 传递到JDialogJDialog 是子窗体,JInternalFrame 是父窗体。如果可以,请给我看一个简单的例子。

这是我的代码,我想将 id 从 ProductDetails 传递给 AddQuantity,我尝试使用静态但它不起作用

public class ProductDetails extends javax.swing.JInternalFrame {
String id;
    public ProductDetails() throws Exception {
        initComponents();
}
//This is a button to go to JDialog
 private void btnAddQuantityActionPerformed(java.awt.event.ActionEvent evt) {                                               
        id = txtID.getText();
        AddQuantity aq = new AddQuantity(null, true);
        aq.setLocationRelativeTo(aq);
        aq.setVisible(true);
}
}


public class AddQuantity extends javax.swing.JDialog {
    ProductDetails pd;
    public AddQuantity(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        //i use showMessage to show result but it show me nothing 
        JOptionPane.showMessageDialog(this, pd.id);
        txtCurrentID.setText(pd.id);
    }
    }

【问题讨论】:

  • 您应该显示一些代码以获得更好的结果,并说明您想要传递的内容以及是否应该共享和更新状态。上下文不够清楚,无法得到正确的答案。
  • 在使用JDialog的类的构造函数中?这不就是类构造函数的用途吗?

标签: java swing jdialog jinternalframe


【解决方案1】:

根据我的说法,没有特定的方法可以做到这一点,但你可以做一件事,即声明数据静态,你也可以将静态事物访问到对话框中。所以你可以在那里展示它:)

另外就是Make方法和输入参数对话框。

【讨论】:

    【解决方案2】:
    • 将您的JFrame 作为JDialog 的所有者传递。
    • 拨打JDialog#getOwner()找主人
    • 从所有者那里获得所需的价值

    【讨论】:

    • 对不起,我弄错了,它是 JInteralFrame 而不是 JFrame。我尝试通过 super() 方法将 JInternalFrame 作为 JDialog 的所有者传递,但没有任何选项 return JInternalFrame 只有返回 Frame
    • 投到JInternalFrame
    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 2018-10-18
    相关资源
    最近更新 更多