I have a JFrame
frmMenuPrincipal
where it contains a JMenuBar
and that JMenuBar
contains a JMenu
mConsulta
and within that JMenu
contains a JMenuItem
miCobranza
. When I click on the JMenuItem I get a window and in that window I have to see a JProgressBar
that is loading and when finished loading open JInternalFrame
but I do not see the JProgressBar
bone when the window is not displayed nothing in it.
JMenuItem code with which I call the JProgressBar
and at the same time the JInternalFrame
:
protected void miCobranzaActionPerformed(ActionEvent e) {
frmProgressBar p = new frmProgressBar();
p.setVisible(true);
frmCobranzaDudosa x = new frmCobranzaDudosa();
dpContenedor.add(x);
x.setVisible(true);
}
Window code of JprogressBar
( JFrame
frmProgressBar
):
package Vista;
import java.awt.EventQueue;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JSeparator;
import javax.swing.JProgressBar;
import javax.swing.UIManager;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
@SuppressWarnings("serial")
public class frmProgressBar extends JFrame {
private JPanel contentPane;
private JProgressBar progressBar;
private Timer timer;
private TimerTask task;
private int numero;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
frmProgressBar frame = new frmProgressBar();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public frmProgressBar() {
setTitle("Procesando...");
setResizable(false);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setBounds(100, 100, 450, 183);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JSeparator separator = new JSeparator();
separator.setBounds(10, 11, 414, 2);
JSeparator separator_1 = new JSeparator();
separator_1.setBounds(10, 142, 415, 2);
progressBar = new JProgressBar();
progressBar.setBounds(10, 110, 415, 21);
progressBar.setStringPainted(true);
contentPane.setLayout(null);
contentPane.add(progressBar);
contentPane.add(separator_1);
contentPane.add(separator);
JLabel label = new JLabel("");
label.setIcon(new ImageIcon(frmProgressBar.class.getResource("/Imagenes/cargando.gif")));
label.setBounds(183, 24, 72, 75);
contentPane.add(label);
cargarBarra();
}
private void cargarBarra() {
timer = new Timer();
task = new TimerTask() {
public void run() {
if (numero >= 100) {
timer.cancel();
dispose();
}
int nuevo = (int) (Math.random() * 4) + 1;
progressBar.setValue(numero);
numero = numero + nuevo;
}
};
timer.scheduleAtFixedRate(task, 0, 100);
}
}