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

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как создать блокирующее всплывающее диалоговое окно с текстом «пожалуйста, подождите», пока приложение выполняет фоновые

Сообщение Anonymous »

Я пишу небольшую программу, которая конвертирует файлы, и мне хотелось, чтобы всплывающее окно просило пользователя «пожалуйста, подождите», пока программа проходит цикл и конвертирует все соответствующие файлы, но я сталкиваюсь с небольшая проблема.
Всплывающее окно должно иметь JLabel и JButton, пока пользователь ждет, я хотел отобразить сообщение «пожалуйста, подождите», и отключенную кнопку JButton «ОК», а затем, когда она будет завершена, я хотел установить текст JLabel, чтобы они знали, что их файлы успешно преобразованы, и дать им подсчет количества файлы были конвертированы. (Я написал метод alert(), который устанавливает текст метки и активирует кнопку).
Проблема в том, что во время работы программы поле пусто, JLabel и JButton не видны, когда оно заканчивается, метка появляется с окончательным текстом, который я хочу, и кнопка оказывается включенной.
Я не совсем понимаю, что происходит, я попробовал изменить модификаторы JLabel и JButton несколько раз, но мне не удается заставить его работать правильно. Вот код всплывающего окна, любая помощь очень важна.
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class PleaseWait extends javax.swing.JFrame{

private static final int height = 125;
private static final int width = 350;
final static JLabel converting = new JLabel("Please Wait while I convert your files");
private static JButton OK = new JButton("OK");

public PleaseWait(){
// creates the main window //
JFrame mainWindow = new JFrame();
mainWindow.setTitle("Chill For A Sec");
mainWindow.setSize(width, height);
mainWindow.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

// creates the layouts//
JPanel mainLayout = new JPanel(new BorderLayout());
JPanel textLayout = new JPanel(new FlowLayout());
JPanel buttonLayout = new JPanel(new FlowLayout());

// Sets Text //
converting.setText("Please wait while I convert your files");

// disables button //
OK.setEnabled(false);

// adds to the layouts //
textLayout.add(converting);
buttonLayout.add(OK);
mainLayout.add(textLayout, BorderLayout.CENTER);
mainLayout.add(buttonLayout, BorderLayout.SOUTH);

// adds to the frame //
mainWindow.add(mainLayout);

// sets everything visible //
mainWindow.setVisible(true);

}

public static void alert(){
OK.setEnabled(true);
String total = String.valueOf(Convert.result());
converting.setText("Sucsess! " + total + " files Converted");
}

}


Подробнее здесь: https://stackoverflow.com/questions/118 ... the-app-is
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»