Как создать, Показывают/Скрывают кнопку деталей?

Я использую 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
        );
    }
}
1
задан Kai 24 April 2013 в 12:07
поделиться

2 ответа

Используйте javax.swing.Timer, а не java.util.Timer... или используйте Trident.

1
ответ дан 2 September 2019 в 23:29
поделиться

Попытка вызвать myDialog.repaint () после установки размера в методе TimerTask run () .

1
ответ дан 2 September 2019 в 23:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: