Buonasera ho un problema con l'utilizzo del javax.swing :
per un applicazione che impiega intorno ai 20 sec a compiere un operazione ho scritto una finestra con una progress bar (JProgressBar).
Ora se lancio la classe della progress bar da sola (ho messo un main di prova) tutto funziona per bene.
Tuttavia la mia applicazione dovrebbe inizialmente aprire una finestra principale e quando il client preme un bottone in questa finestra allora dovrebbe apparire la progress bar. Bene, si apre la finestra in questione ma purtroppo il pannello (JPanel) che contiene l oggetto JProgressBar non si visualizza bene (rimane in bianco per capirci). Non so davvero a cosa possa essere dovuto, l unica cosa che mi è venuta in mente è che potrebbe esserci qualche problema per il fatto che la JProgressBarFrame (vedi codice sotto) è aperta da un'altra JFrame (quella principale).
Copio il codice della classe progress bar :
codice:
public class ProgressBar {
JFrame frame;
public ProgressBar() {
frame = new ProgressBarFrame();
}
public void parti() {
new Runnable() {
public void run() {
Toolkit t = Toolkit.getDefaultToolkit();
Dimension d = t.getScreenSize();
frame.setLocation(((int) d.getWidth() / 2) - frame.getWidth()
/ 2, ((int) d.getHeight() / 2) - frame.getHeight() / 2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
}
}.run();
}
public void stoppa() {
frame.setVisible(false);
frame.dispose();
}
public static void main(String args[]) {
ProgressBar p = new ProgressBar();
p.parti();
}
}
class ProgressBarFrame extends JFrame {
private JProgressBar progressBar;
public static final int DEFAULT_WIDTH = 250;
public static final int DEFAULT_HEIGHT = 100;
public ProgressBarFrame() {
setTitle("Application");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
JPanel panel = new JPanel();
progressBar = new JProgressBar();
progressBar.setIndeterminate(true);
panel.add(new JLabel("Searching for COM ports..."));
panel.add(progressBar);
this.add(panel, BorderLayout.CENTER);
}
}
Volevo postare uno screenshot della progress bar quando viene eseguita da sola e quando viene chiamata dall altra finestra ma non ho capito come postare immagini