通过jDialog将数据传递到另一个jPanel

时间:2012-11-30 10:32:54

标签: java swing jpanel jbutton actionlistener

我创建了一个jPanel,当我点击按钮时打开一个新的jDialog(dlgSegments是一个打开的JDialog):

JButton btnAddSegment = new JButton("Add GeoSegment");
btnAddSegment.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        dlgSegments.setVisible(true);
    }
});

然后在打开的jDialog中,我想将“selected”返回给调用此jDialog的jPanel。

我该如何实施?

这是打开的jDialog中的按钮侦听器,seleced是我想传递给jPanel的变量:

addButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        GeoSegment selected = lstSegments.getSelectedValue();
        // i want to send back the selected value
    }
});

2 个答案:

答案 0 :(得分:0)

一种可能的解决方案:如果创建Dialog,则通过其构造函数将DataObject发送到Dialog。 DataObject包含您感兴趣的值。

MyDataObject dataObject = new MyDataObject();
MyDialog dialog = new MyDialog(dataObject);

使用对话框中的选定值填充DataObject。

答案 1 :(得分:0)

如果您仍在使用this problem,则添加按钮可以拨打getSelectedIndex()getSelectedIndices()来查找所选内容。然后点燃PropertyChangeEvent像@Hovercraft Full Of Eels节目here。让主面板执行addPropertyChangeListener()来收听对话框。