169 похожих чатов

Как сделать так что бы загрузка отображалась в отдельном окне

во frame2? Если вызывать его в main то все ок, а если через другой констректор то он просто пустой висит.
package org.example;

import javax.swing.*;
import java.awt.*;
import java.io.IOException;
public class Frame extends JFrame {

public Frame() throws HeadlessException, InterruptedException, IOException {

JFrame progressFrame = new JFrame();
progressFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
progressFrame.setSize(500, 500);
progressFrame.setLayout(new GridLayout());
progressFrame.setTitle("Scanning");

Clas clas = new Clas();
clas.getFrame();

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setLayout(new GridLayout());
frame.setTitle("Frame");

JPanel mainPanel = new JPanel();
mainPanel.setBackground(Color.BLACK);
mainPanel.setLayout(null); // устанавливаем для панели panel1 BorderLayout

JPanel infoPanel = new JPanel();
infoPanel.setBackground(Color.WHITE);
infoPanel.setBounds(10,10,300,100);
infoPanel.setLayout(null);

JPanel buttonsPanel1 = new JPanel();
buttonsPanel1.setBackground(Color.green);
buttonsPanel1.setBounds(10, 120, 480, 200);
buttonsPanel1.setLayout(null);
JButton button1 = new JButton();
button1.setBackground(Color.BLACK);
button1.setBounds(10,10,30,30);
buttonsPanel1.add(button1);

JPanel buttonsPanel2 = new JPanel();
buttonsPanel2.setBackground(Color.yellow);
buttonsPanel2.setBounds(10, 120, 480, 200);

String[] panels = {"panel1", "panel2"};
JComboBox<String> comboBox = new JComboBox<>(panels);
comboBox.setBackground(Color.magenta);
comboBox.setBounds(10,400, 50,20);

CardLayout cardLayout = new CardLayout();
JPanel cardPanel = new JPanel(cardLayout);
cardPanel.setBackground(Color.WHITE);
cardPanel.setBounds(10, 120, 480, 200);
cardPanel.add(buttonsPanel1, "panel1");
cardPanel.add(buttonsPanel2, "panel2");

comboBox.addActionListener(e -> {
String select = (String) comboBox.getSelectedItem();
cardLayout.show(cardPanel, select.toLowerCase());
});

mainPanel.add(infoPanel);
mainPanel.add(cardPanel);
mainPanel.add(comboBox);

frame.add(mainPanel);

frame.setVisible(true);
}

public static void main(String[] args) throws IOException, InterruptedException {

SwingUtilities.invokeLater(() -> {
try {
new Frame();
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
});
}
}

package org.example;

import javax.swing.*;
import java.awt.*;

public class Clas {

public Clas() {
}

public void getFrame() throws InterruptedException {
JFrame frame2 = new JFrame();
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setSize(200, 100);
frame2.setLocationRelativeTo(null); // Чтобы окно появлялось по центру экрана
frame2.setTitle("Loading");

JPanel panel = new JPanel(new BorderLayout());
JProgressBar progressBar = new JProgressBar(0, 20);
progressBar.setValue(0);
progressBar.setStringPainted(true);
panel.add(progressBar, BorderLayout.CENTER);

frame2.add(panel);
frame2.pack();
frame2.setVisible(true);

for (int i = 0; i < 20; i++) {
Thread.sleep(300);
System.out.println(i);
progressBar.setValue(i + 1);
}

frame2.dispose(); // Закрываем окно с прогресс-баром
}
}

1 ответов

17 просмотров

Твою простыню вряд ли кто-то будет читать. Pastebin.com

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта