Java 单击按钮以激活JOptionPane.ShowOption对话框在关闭后保持单击状态

Java 单击按钮以激活JOptionPane.ShowOption对话框在关闭后保持单击状态,java,swing,jbutton,joptionpane,Java,Swing,Jbutton,Joptionpane,我觉得我已经完成了繁重的工作,现在我被困在了应该是最简单的部分上,关上了我的窗格。谁能告诉我我做错了什么吗?我认为这些是适用的位,但如果需要,我很乐意添加更多。谢谢 我有一个JOptionPane.showOptionDialog,它可以处理一些复杂的事情。我有一个翻译按钮: private void jButton25ActionPerformed(java.awt.event.ActionEvent evt) { //Translate 这将启动此面板: int resul

我觉得我已经完成了繁重的工作,现在我被困在了应该是最简单的部分上,关上了我的窗格。谁能告诉我我做错了什么吗?我认为这些是适用的位,但如果需要,我很乐意添加更多。谢谢

我有一个JOptionPane.showOptionDialog,它可以处理一些复杂的事情。我有一个翻译按钮:

private void jButton25ActionPerformed(java.awt.event.ActionEvent evt) { 
  //Translate
这将启动此面板:

     int result = JOptionPane.showOptionDialog(null, xlf_myPanel, "Navigate Segments",
            JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE,
            null, xoptions, null);
到目前为止,一切都很好:

     System.out.println(myglobal+" source: " + xlf_xField.getText());
     System.out.println(xlf_varig+"target: " + xlf_yField.getText());
     PrintWriter out = new PrintWriter("x-files/temp/"+xlf_varig+"-.txt");
     out.println(xlf_yField.getText());
     out.close();
我做一些转换

       switch( result ) { 

        case 0:
        // Next selected
        myglobal +=1 ;  
        runnavigate("n/a moved this into runtransform", "x-files/out/tmx.xml", "x-files/xsl/xliff2tmx.xsl");
        textfield.setText(String.valueOf(myglobal));
        break;

        case 1:
        // Previous selected
       myglobal -=1 ; 
       runnavigate("n/a moved this into runtransform", "x-files/out/tmx.xml", "x-files/xsl/xliff2tmx.xsl");
       textfield.setText(String.valueOf(myglobal));
       break;

        case 2:
        // First selected
        myglobal = 0 ;  
       // jButton26.setEnabled(true);
        runnavigate("n/a moved this into runtransform", "x-files/out/tmx.xml", "x-files/xsl/xliff2tmx.xsl");
        textfield.setText(String.valueOf(myglobal));
        break;

        case 3:
        // Last selected
       myglobal = mylastglobal ; 
      // jButton25.setEnabled(true);
       runnavigate("n/a moved this into runtransform", "x-files/out/tmx.xml", "x-files/xsl/xliff2tmx.xsl");
       textfield.setText(String.valueOf(myglobal));
        break;    

        case 4:
        // Done selected
        //result.dispose(); // not working - this says cannot dispose int
        System.out.println( "Done chosen" );
        break;

        case JOptionPane.CLOSED_OPTION:
        // User closed the box.  Nothing selected.
        System.out.println( "Dialog Closed" );
        break;

    } 

但当我点击“完成”按钮时,“翻译”按钮保持单击状态。如何使其正确关闭?

您的结果是一个int,它是一种基本数据类型,您正在对其调用dispose。你不能那样做。编译器正在说些什么,这是正确的!为什么要处理结果?只需删除该声明,它就可以正常工作。谢谢你的建议。你的意思是说把它拿走吗?正如您在我的示例代码中看到的那样,我是通过注释完成的。这给我留下了一个按钮,上面写着“按下”,这就是我试图解决的问题。你能帮我理解如何取消按下按钮吗?解决了。这是我没有展示的代码的一部分:xlf_myPanel.addjButton25;我正在向面板添加与按钮调用的按钮相同的按钮。我移除了它,现在“完成”按钮工作得非常出色。