如何创建显示/隐藏详细信息按钮?

时间:2010-06-26 09:41:39

标签: java swing jdialog

我正在使用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
        );
    }
}

2 个答案:

答案 0 :(得分:1)

使用javax.swing.Timer,而不是 java.util.Timer ...或使用Trident

答案 1 :(得分:1)

在TimerTask的myDialog.repaint()方法中设置大小后尝试调用run()