Добавление окна сообщения в Java-программу, которая открывается и закрывается в определенный момент - PullRequest
2 голосов
/ 19 мая 2011

Я смог выяснить, получаю ли я информацию от пользователя и отображает конечный продукт самостоятельно, но я хотел бы добавить сообщение «занято», которое отображается в определенной точке, а затем закрывается в определенной точке кода.

Надеюсь, это будет проще объяснить, показав это в моем коде.Это для алгоритма сортировки, и время сортировки, очевидно, будет различным.

public static void main(String[] args) throws Exception{

        //Code that doesn't matter for this question...

        String userInput = JOptionPane.showInputDialog("Please enter the amount of input you would like to test (integer): ");

    // Code that doesn't matter for this question....

    //
    // Open dialogue box here that says, "Busy sorting" and stays open 
    // 
        long startTime = System.currentTimeMillis();
            sort(shorts);
        long endTime = System.currentTimeMillis();

    //
    // The dialogue box closes here without the user having to press anything
    //

    // This displays the final output.
            JOptionPane.showMessageDialog(null, error + "The runtime for " + input + " short integers is " + (endTime-startTime) + " milliseconds.", "Final Runtime", JOptionPane.PLAIN_MESSAGE);

        }

Надеюсь, вопрос понятен.

Ответы [ 5 ]

3 голосов
/ 19 мая 2011

Вам понадобится использовать класс SwingWorker для запуска вашей длинной задачи в отдельном потоке из графического интерфейса.Пока он работает, идеально подойдет JProgressBar или что-то подобное.

http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html

1 голос
/ 19 мая 2011

Прочитайте раздел из учебника Swing на Как использовать Progress Bars для некоторых примеров.

Или, может быть, вы хотели бы попробовать Отключенное стекло .

1 голос
/ 19 мая 2011

JFrame - это, вероятно, то, что вы ищете.

Ах, да, и имейте в виду важное замечание по созданию потоков в Swing от jzd. Тебе тоже захочется прочитать об этом .

0 голосов
/ 19 мая 2011

Как я уже упоминал в моем вопросе, вы должны проверить учебник свинга.Это действительно хорошо, и за ним очень легко следовать.

JOptionPane является частью Java Swing, хотя, как говорили другие, это, вероятно, не лучший подход для отображения состояния занятости.Как уже говорили другие, индикатор выполнения может быть хорошим вариантом, в зависимости от ваших потребностей, но вы увидите другие варианты, когда пройдете учебник.

Удачи!

0 голосов
/ 19 мая 2011

Я, вероятно, не буду использовать JOptionPane. Поскольку при отображении сообщения о занятости программа не будет выполняться. Вам лучше создать более сложное свинг-приложение с текстовым полем и кнопкой. Когда пользователь нажимает кнопку, система отображает сообщение о занятости в нижней части окна.

...