javax.swing.JDialog在windows设备上出现两次

javax.swing.JDialog在windows设备上出现两次,swing,Swing,我已经创建了一个JDialog,当我点击JFrame的edit按钮时会打开,它被正确打开并且没有任何问题,但是当我在WindowsCE5.0设备上获取此代码时,这个对话框被打开了两次。问题是,我只在“编辑”按钮上单击了一次,但对话框出现了两次,我希望在“编辑”按钮单击时只出现一个对话框。好的,我已经找到了解决方案 public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting() == false) {

我已经创建了一个JDialog,当我点击JFrame的edit按钮时会打开,它被正确打开并且没有任何问题,但是当我在WindowsCE5.0设备上获取此代码时,这个对话框被打开了两次。问题是,我只在“编辑”按钮上单击了一次,但对话框出现了两次,我希望在“编辑”按钮单击时只出现一个对话框。

好的,我已经找到了解决方案

public void valueChanged(ListSelectionEvent e) {
    if (e.getValueIsAdjusting() == false) {
        List lsm = (List) e.getSource();
        showDialog();
        lsm.clearSelection();
    }
}

听起来你好像在什么地方有第二个电话。你能告诉我们更多关于测试环境的差异,并可能显示一些代码吗?没有其他对话框调用,问题只出现在我桌面上的设备上,它按预期工作,但当我将此代码的jar放在win ce设备上时,会显示两次。我使用的是ListSelectionListener,当我单击列表中的任何项目时,valueChanged(ListSelectionEvent e)方法在该方法中被调用,我已经显示了该jdialog,但在设备上该方法被调用了两次。public void valueChanged(ListSelectionEvent e){list lsm=(list)e.getSource();showDialog();lsm.clearSelection();}好的,我已经更改了解决方案public void valueChanged(ListSelectionEvent e){if(e.getValueIsAdjusting()==false){List lsm=(List)e.getSource();showDialog();lsm.clearSelection();}}谓词
!e、 getValueIsAdjusting()
e的常见替代方法。getValueIsAdjusting()==false