|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
[Java] Problema visualizzazione JProgressBar in JDialog
Ciao a tutti! Ho questo problema: ho creato una classe che mi consente di far comparire un JDialog con dentro una semplice JProgressBar indeterminata... il problema è che il JDialog viene visualizzato, ma non la JProgressBar, che viene invece visualizzata anch'essa solo se richiamo il metodo in un'altra parte del programma, ad esempio nel costruttore... perchè?? o_O
ProgressBar: Codice:
package immagineX; import javax.swing.JFrame; import javax.swing.JProgressBar; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.JLabel; public class ProgressBar { public static JDialog showIndeterminateBar(JFrame parentFrame) { JDialog barDialog = new JDialog (parentFrame); barDialog.setSize (250, 80); barDialog.setLocationRelativeTo (null); barDialog.setResizable (false); barDialog.setDefaultCloseOperation (JDialog.DO_NOTHING_ON_CLOSE); JPanel panelDialog = new JPanel(); JLabel lab = new JLabel ("Caricamento..."); panelDialog.add (lab); JProgressBar bar = new JProgressBar(); bar.setIndeterminate(true); panelDialog.add (bar); barDialog.add (panelDialog); barDialog.setVisible(true); return barDialog; } } Codice:
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JLabel; import javax.swing.JDialog; import java.io.File; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import immagineX.*; public class ImmagineX extends JFrame { public ArrayList<ImageX> images; public JLabel infoLabel; public JPanel centerPanel; public ImmagineX() { super("ImmagineX"); setSize(640, 400); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //addWindowListener(new WindowHandler()); setJMenuBar(new XMenuBar(this)); images = new ArrayList<ImageX>(); infoLabel = new JLabel("Benvenuto in ImmagineX"); centerPanel = new JPanel(TableLayout.newInstance()); add(infoLabel, BorderLayout.NORTH); add(new JScrollPane(centerPanel), BorderLayout.CENTER); setVisible(true); } public void updateCenterPanel() { JDialog barDialog = ProgressBar.showIndeterminateBar(this); centerPanel.removeAll(); for (ImageX image : images) { JPanel imagePanel = new JPanel(); imagePanel.setPreferredSize(new Dimension(160, 200)); imagePanel.add(new JLabel(image.getImagePreview())); imagePanel.add(new JLabel(image.getFile().getName())); centerPanel.add(imagePanel); } barDialog.dispose(); } public static void main(String[] args) { new ImmagineX(); } } Qualcuno può aiutarmi? |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Aug 2008
Messaggi: 210
|
Risolto invocando il metodo in un nuovo thread :P
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:53.