Я получил класс java под названием PleaseWait
и хочу называть его всякий раз, когда выполняется тяжелая задача. Когда моя программа выполняет тяжелую задачу, в первой строке моего actionListener
я установил переменную этого класса setVisible(true)
, а затем установил setVisible(true)
в конце actionListener
.Java, Swing - JPanel не отображается в JFrame, как ожидалось
Каким-то образом JPanel
в этом классе не появляется, когда я его называю, это просто окно с заголовком как установленным и белым пустым содержимым. Вот мой код:
public class PleaseWait extends JFrame{
public PleaseWait(){
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenDimensions = toolkit.getScreenSize();
setSize(300,100); //set size based on screen size
setTitle("Please wait");
Container container = getContentPane();
setLocation(new Point(screenDimensions.width*1/4+200, screenDimensions.height*1/4+200)); //set location based on screen size
JPanel panel = new JPanel();
JLabel wait = new JLabel("Please wait");
Dimension buttonsSize = new Dimension(300,100);
panel.setPreferredSize(buttonsSize);
wait.setPreferredSize(buttonsSize);
panel.setLayout(new BorderLayout());
panel.add(wait, BorderLayout.CENTER);
container.add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false); //unresizable
}
Пожалуйста [править] Ваш вопрос, чтобы включить фактические [mcve] (добавить весь код). –
Это все, что у меня есть для этого класса, другой класс просто называет что-то вроде 'PleaseWait wait = new PleaseWait(); wait.setVisible (true); ' –
Вы перешли по ссылке и прочитали документ, связанный с @JonnyHenly? Из вашего ответа я подозреваю, что нет. Голосование закрывается для «нет MCVE» (есть не только одна близкая причина, но и две, которые упоминают об этом). –