通用对话框确定没有第二次触发

时间:2012-06-06 06:06:49

标签: java imagej

我在程序中创建了一个通用对话框的静态实例

static GenericDialog SaveDialog = null;

及以下是显示对话框的代码

public boolean DispSaveDialog()
{
    //gd.addStringField("Identity : ", "annot");
    if(SaveDialog == null)
    {
        SaveDialog =  new GenericDialog("Save");
        Panel idnPanel = new Panel();
        idnPanel.add(new Label("Identity"));
        idnTextComp = new TextField("annot");
        csPrefix = idnTextComp.getText();
        TextListener tl = new TextListener() {

            @Override
            public void textValueChanged(TextEvent e) {
                // TODO Auto-generated method stub
                csPrefix = idnTextComp.getText();
            }
        };
        idnTextComp.addTextListener(tl);
        idnPanel.add(idnTextComp);
        SaveDialog.addPanel(idnPanel);
        final TextComponent textComponent = new TextField();
        ActionListener al = new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                String label = e.getActionCommand();                
                //csPrefix = gd.getNextString();
                if (label=="Browse")
                {                   
                    String csFilename = imp.getTitle();                 
                    csTextFileName = FileNameProcess( csFilename );     
                }   
                textComponent.setText(csTextFileName);
            }
        };
        Button btBrowse = new Button("Browse");
        btBrowse.addActionListener(al);     
        Panel panel = new Panel();

        panel.add(new Label("Folder : "));
        //textComponent.setBounds(gd.getBounds());
        panel.add(textComponent);
        panel.add( btBrowse );  
        SaveDialog.addPanel(panel);         
    }   
    SaveDialog.showDialog();
    return true;
}

我面临的问题是,当我第二次打开对话框时,不会触发OK和Cancel事件。 我觉得这个问题很愚蠢,很抱歉,并提前感谢。

1 个答案:

答案 0 :(得分:0)

以上代码是这样的,当显示通用对话框时,第二次保留旧值。 我做了相同的解决方法,我在静态字符串变量中保存第一次输入的字符串,并在检查空值后加载它们。

这不是解决方案,只是一种解决方法,所以我可以按时关闭问题。 :(