3

短いコードがあります。ダイアログを破棄したいのですが、ユーザーがダイアログを閉じられるようにしたくありません。機能しません。助けてください。

    import javax.swing.*;
    public class Processing extends JOptionPane{

    JDialog jd;
    public Processing(){
        super(null, JOptionPane.DEFAULT_OPTION, 
                  JOptionPane.INFORMATION_MESSAGE, null, new Object[]{});
        Icon processPic = new ImageIcon("C:\\Users\\Judit\\Desktop\\Mesekocka3D"
                + "\\externals\\pics\\szamitas.gif");

        setMessage(processPic);
        jd = createDialog("Számítás");

        jd.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        jd.setVisible(true);
        jd.dispose();
    }   
}

これは私のコードが今どのように見えるかです、私はJoptionpaneの代わりにJdialogを使用します、私はウェブサイトに私の編集を受け入れさせるためにもっと多くの文字を書くべきですか?

import javax.swing.*;



public class Mifasz
{
 private static class Processing extends JDialog{

public Processing(){
    Icon processPic = new ImageIcon("C:\\Users\\Judit\\Desktop\\Mesekocka3D"
            + "\\externals\\pics\\szamitas.gif");
    JLabel label = new JLabel(processPic);
    add(label);
    setTitle("Számítás");
    setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);        
    setSize(400, 70);
    setLocation(330, 300);
    setModal(true);
    setVisible(true);
    dispose();
}       
}

  public static void main(String[] args)
  {
    Processing pc = new Processing();
  }

}
4

4 に答える 4

2

ユーザーにgifを短時間表示したいのですが、それはロード画面のようなものです。それまでアプリで何もしてほしくないので、joptionpaneを使用していますが、オプションペインの X ボタンを無効にするオプションが見つからなかったため、jdialog を使用しています。

1)装飾なしで使用できますJDialog#setUndecorated(true);

2)JLabelアイコンgifとして配置

3)タイミングのためにSwing Timerを使用します。oSwing Timer からの出力はSwing Actionであり、内部actionPerformedに置くことができます。JDialog#setVisible(fasle);

編集

ブロックしたいのですが、ユーザーが JCombobox アイテムをクリックする回数だけ使用する必要があります

1) JDialog を 1 回だけ作成し、それを再利用します。

2) Swing Timer#repeat(false) を遅延を期待して実行しますactionPerformedJDialog#setVisible(fasle);

3) 選択したイベントItem( )のJComboBox変更IconJLabel myLabel#setIcon(myAnotherGIF)

invokeLater4)ラップの内側JDialog#setVisible(true);

5) 他の手順は必要ありません

特殊な場合のみ

6) あなたは電話しなければなりません

myIcon.getImage().flush();
myLabel.setIcon(myIcon);

Icon's再塗装に問題がある場合JLabel

于 2012-04-19T20:14:32.223 に答える
1

電話する必要があります

jd.setVisible(false);

その後

jd.dispose();
于 2012-04-19T19:21:15.310 に答える
0

あなたがやりたいのはスプラッシュスクリーンです。これを見てください。

于 2012-04-19T23:51:27.293 に答える
0

わかりましたので、非常に簡単な解決策を見つけました。処理中にメインフレームを無効にするだけです。 Swing Java で JFrame Modal を作成する方法

于 2012-04-20T17:27:53.717 に答える