1

Java Swing を使用して JDialog を作成しています。この JDialog の下部にあるレポートを表示/非表示にするための詳細の表示/非表示ボタンを作成しようとしています。

それは私にとってはうまくいきますが、レポートの表示/非表示中に小さなアニメーション効果を追加するために、時間をかけてこれを行いたいと思います.TimerTaskを使用しましたが、スローモーションなしでレポートを直接表示しています...これが私の現在のコードです:

private void showHideDetailsButtonActionPerformed() {
    final MyDialog myDialog = this;
    int fullHeight = this.getHeight();
    int smallHeight = this.getHeight()/2 - 4;
    this.setSize( this.getWidth(), smallHeight );  // By default hide the report.

    if( this.getHeight() == smallHeight ) {  // Show details.
        new Timer().schedule(
            new java.util.TimerTask() {
                @Override
                public void run() {
                    while( myDialog.getHeight() < fullHeight ) {
                        myDialog.setSize( myDialog.getWidth(), myDialog.getHeight() + 1 );
                        System.out.println( myDialog.getHeight() );
                    }
                }
            }, 
            800
        );
    }
}
4

2 に答える 2

1

java.util.Timerではなくjavax.swing.Timerを使用するか、Tridentを使用します。

于 2010-06-26T11:09:49.150 に答える
1

myDialog.repaint()TimerTask のrun()メソッドでサイズを設定して呼び出してみます。

于 2010-06-26T14:28:40.043 に答える