Jbutton actionevent отображает пустой пользовательский интерфейс при обработке шагов actioneventJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Jbutton actionevent отображает пустой пользовательский интерфейс при обработке шагов actionevent

Сообщение Anonymous »

У меня есть два разных интерфейса: один родительский, другой дочерний. Из родительского пользовательского интерфейса, когда я нажимаю кнопку, он должен отображать дочерний интерфейс во время выполнения шагов под родительской кнопкой, но он показывает пустой дочерний интерфейс, и как только шаги родительской кнопки завершаются в actionevent, только тогда дочерний интерфейс полностью видимый.
Я пробовал использовать Swingworker, таймеры и даже новые потоки в дочернем пользовательском интерфейсе, но ни один из них не работал.
Код для обоих классов выглядит следующим образом:
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class ClassMain extends JFrame {
private static final long serialVersionUID = 1L;
static ClassProgress p;

public static void main(String[] args) {
ClassMain m = new ClassMain();

m.setVisible(true);
m.setResizable(false);
m.setLocationRelativeTo(null);

p = new ClassProgress();
}

public ClassMain() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 385);

getContentPane().setLayout(new BorderLayout(0, 0));

JLabel lblNewLabel = new JLabel("Processing");
getContentPane().add(lblNewLabel, BorderLayout.NORTH);

JLabel lblNewLabel_1 = new JLabel("1");
lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
getContentPane().add(lblNewLabel_1, BorderLayout.CENTER);

JButton btnNewButton_1 = new JButton("Start primary action");
getContentPane().add(btnNewButton_1, BorderLayout.WEST);
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Data obtained from some actions here will be sent to showUi to update it's jlabel and progressbar

// doing this shows the UI but the UI is blank
p.showUi();

// multiple actions here, until they are not completed, UI remains blank
}
});

JButton btnNewButton = new JButton("Show Progress UI");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ClassRunner cr = new ClassRunner();
cr.Start();
}
});
getContentPane().add(btnNewButton, BorderLayout.EAST);
}
}

import javax.swing.JDialog;
import javax.swing.JProgressBar;
import javax.swing.WindowConstants;

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JLabel;

public class ClassProgress {
JDialog p;
JProgressBar progressBar;

public ClassProgress() {
p = new JDialog();

progressBar = new JProgressBar();
progressBar.setMinimum(0);
progressBar.setMaximum(60);
p.getContentPane().add(progressBar, BorderLayout.CENTER);

JButton btnNewButton = new JButton("New button");
p.getContentPane().add(btnNewButton, BorderLayout.SOUTH);

JLabel lblNewLabel = new JLabel("This is label to update");
p.getContentPane().add(lblNewLabel, BorderLayout.NORTH);

p.setTitle("Process");
p.setSize(360, 190);
p.setResizable(false);
p.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
p.setLocationRelativeTo(null);
p.setAlwaysOnTop(true);
}

public void showUi() {
p.setVisible(true);
}

public void updateProgress(int value) {
progressBar.setValue(value);
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... vent-steps
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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