Я создаю проект, который извлекает данные из базы данных SQL. Пока эти данные загружаются, я хочу, чтобы конечный пользователь увидел загрузочный фрейм. На первом запуске отображается рамка с изображением. Во второй раз, когда пользователь меняет зоны, которые он видит, кадр появляется снова, но на этот раз изображение не отображается до тех пор, пока функция внутри действия не завершится. Не могли бы вы взглянуть на мой код и указать на то, что я делаю неправильно?JPanel не показывает изображение во второй раз загрузка
confirm.addActionListener(new ActionListener()
{
ArrayList<String> newZones = new ArrayList<String>();
public void actionPerformed(ActionEvent e)
{
JFrame loadingFrame = new JFrame();
JPanel loadingPanel = new JPanel();
loadingFrame.setSize(500, 500);
JLabel loadingL = new JLabel(new ImageIcon("C:/Users/gria/Desktop/Images/Loading.png"));
loadingPanel.add(loadingL);
loadingFrame.add(loadingPanel);
loadingFrame.validate();
loadingFrame.repaint();
loadingFrame.pack();
loadingFrame.setVisible(true);
// The Image will not show until this function finishes which is where all the data base connections take place.
Console.SetZones(newZones);
}
});
1) Возможно, потому что после первого раза он никогда не выполняет код внутри 'if (LFrameCreated == false) 'больше, поэтому он не обновляет изображение. 2) Проводка [MCVE] увеличит ваши шансы получить хороший ответ. 3) Кажется, что в вашем коде есть ненужное чрезмерное использование статического кода. 4) Имена переменных и методов должны начинаться с буквы нижнего регистра (соглашение о кодировании). –
1) если я вынимаю if и удаляю рамку, он по-прежнему дает ту же проблему, где отображается рамка, но не изображение. Если я не удаляю фрейм и не вынимаю, если он покажет изображение после загрузки всех данных. 2) Почти каждый раз, когда я отправляю сюда, я всегда запрашиваю больше кода T_T – Ardel
2) Я на самом деле запрашиваю код * меньше *. [MCVE] должен сузить ваш код на один * компилируемый * пример, который содержит только действительно необходимые строки для воспроизведения проблемы. (Пожалуйста, действительно прочитайте страницу, с которой я связан) –