Я понимаю, что нет способа сделать модальный код JProgressMonitor
и что лучше использовать JDialog
с JProgressBar
. Теперь я получил эту работу - но только до тех пор, пока я не пытаюсь сделать модальный код JDialog
. Может ли кто-нибудь сказать мне, что я делаю неправильно?
private Frame frame;
private JPanel contentPane;
private JProgressBar progressBar;
public MainClass() {
JButton startBtn = new JButton("Start");
startBtn.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(final ActionEvent arg0)
{
new Thread(new Runnable()
{
@Override
public void run()
{
createJDialog();
for (int i = 0; i < 100; ++i)
{
final int j = i;
doInBackground();//Batch process
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
progressBar.setValue(j);
}
});
}
}
}).start();
}
});
}
public void createJDialog()
{
JDialog d = new JDialog();
d.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
//Keeps progressBar from updating
//d.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
//d.setModal(true);
d.getContentPane().add(progressBar, BorderLayout.PAGE_START);
d.getContentPane().add(progressBar, BorderLayout.PAGE_END);
d.pack();
d.setVisible(true);
}