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

Java 如何创建“显示/隐藏详细信息”按钮?,java,swing,jdialog,Java,Swing,Jdialog,我正在使用JavaSwing创建一个JDialog,并尝试创建一个Show/Hide details按钮来显示/隐藏这个JDialog底部的报告 它对我来说很好,但我想随着时间的推移,在显示/隐藏报告时添加一个小的动画效果,我使用了TimerTask,但它只是直接显示报告,没有任何慢动作。。。以下是我当前的代码: private void showHideDetailsButtonActionPerformed() { final MyDialog myDialog = this;

我正在使用JavaSwing创建一个JDialog,并尝试创建一个Show/Hide details按钮来显示/隐藏这个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
        );
    }
}
private void showHiddeDetailsButtonactionPerformed(){
最终MyDialog MyDialog=此;
int fullHeight=this.getHeight();
int smallHeight=this.getHeight()/2-4;
this.setSize(this.getWidth(),smallHeight);//默认情况下隐藏报告。
如果(this.getHeight()==smallHeight){//显示详细信息。
新建计时器()。计划(
新的java.util.TimerTask(){
@凌驾
公开募捐{
while(myDialog.getHeight()
使用,而不是java.util.Timer。。。或者使用。

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

完美。。。计时器非常简单,可以完成任务。谢谢,但它仍然会在计时器间隔结束后直接显示报告。