Olá
Possuo o seguinte problema, quando executa uma determinada operação, desejo abrir uma JProgressBar e bloquear a janela que eonctra - se atrá do JProgressBar. Tentei utilizar a propriedade setmodal(true), mas daí o JProgressBat fica trancando no setvisible e só saí se eu fecho o JProgressBar, gostaria que ele fechasse sozinho ao terminar de executa a operação e bloqueasse o que estivesse atrá do JProgressBar. Segue os códigos:
Método que chama o ProgressBarPDH, ele tranca no setVisible(true) e só executa o writeAggregated() depois que eu fecho a progressBar.
public void setAggregated(){
Thread th = new Thread(){@Override
public void run() {
p = new ProgressBarPDH(null, "teste", 10);
// pg = new ProgressBar(null,Resource.getText("progressbar.title"),1);
p.setAlwaysOnTop(true);
p.setVisible(true);
writeAggregated();
p.dispose();
//habilitaBotoes(true);
}};
th.start();
}
Código da ProgressBar, se eu coloco a propriedade setModal(true), a JPogresse não fecha sozinha, mas se eu não coloco ela fecha sozinha e não me deixa mexer na janela que eu tenho atraás da JProgressBar, e a idéia é bloquear essa janela.
public class ProgressBarPDH
extends JDialog
implements ActionListener {
private JPanel content;
private JPanel button;
private JProgressBar progressBar;
private JButton buttonOK;
public ProgressBarPDH(Frame owner,String title, int total) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
title = "teste";
// make the progress window
//JDialog win = new JDialog(ApplicationContext.getMainFrame(), title, true);
JDialog win = new JDialog((Frame)null, title, true);
win.setSize(200, 200);
win.setLocation(200, 200);
win.setResizable(false);
JPanel pnConfigure = new JPanel();
pnConfigure.setPreferredSize(new Dimension(200, 200));
pnConfigure.setBorder(BorderFactory.createBevelBorder(1));
pnConfigure.setLayout(null);
win.getContentPane().add(pnConfigure);
// make the Progress Bar
JProgressBar pBar = new JProgressBar(50, 50);
pBar.setBounds(30, 35, 50, 50);
pBar.setStringPainted(true);
pnConfigure.add(pBar);
setModal(true);
win.pack();
}
}
Alguém pode me ajudar??
Obrigada