vorrei realizzare il seguente animazione di carico con Java Swing:Java Swing Caricamento Animazione
Il cerchio deve girare in senso orario.
Quale sarebbe il modo migliore per farlo?
Grazie mille.
vorrei realizzare il seguente animazione di carico con Java Swing:Java Swing Caricamento Animazione
Il cerchio deve girare in senso orario.
Quale sarebbe il modo migliore per farlo?
Grazie mille.
È possibile utilizzare la classe Animated Icon per creare la propria animazione utilizzando l'icona esistente.
Questo potrebbe essere disegnato con un componente personalizzato o un'icona personalizzata, utilizzando le normali chiamate Java2D
. Per me sembra uno Arc2D
con uno spessore abbastanza elevato, BasicStroke
disegnato con uno GradientPaint
.
In alternativa, esportare i fotogrammi da Inkscape (o altri programmi di grafica) e caricarli come immagini.
Basta usare un ImageIcon e una gif animata. vedere setImageObserver in ImageIcon.
Le icone di caricamento possono essere create utilizzando una varietà di generatori online come AjaxLoad.
MOLTO BELLO! utile! La gif animata – drzymala
Speriamo che non sia troppo tardi per questo.
sono riuscito ad ottenere la gif animata all'interno del mio JPanel in questo modo:
private JPanel loadingPanel() {
JPanel panel = new JPanel();
BoxLayout layoutMgr = new BoxLayout(panel, BoxLayout.PAGE_AXIS);
panel.setLayout(layoutMgr);
ClassLoader cldr = this.getClass().getClassLoader();
java.net.URL imageURL = cldr.getResource("img/spinner.gif");
ImageIcon imageIcon = new ImageIcon(imageURL);
JLabel iconLabel = new JLabel();
iconLabel.setIcon(imageIcon);
imageIcon.setImageObserver(iconLabel);
JLabel label = new JLabel("Loading...");
panel.add(iconLabel);
panel.add(label);
return panel;
}
Alcuni punti di questo approccio:
1. Il file di immagine è all'interno del vaso;
2. ImageIO.read() restituisce una BufferedImage, che non aggiorna ImageObserver;
3. Un'altra alternativa per trovare immagini raggruppate nel file jar è chiedere al caricatore di classi Java, il codice che ha caricato il programma, di ottenere i file. Sa dove sono le cose.
Così facendo sono riuscito a ottenere la mia gif animata all'interno del mio JPanel e ha funzionato come un fascino.
non è un'opzione, perché manca di effetti trasparenti buoni e uniformi. Uno spinner deve per lo più essere trasparente e con uno sfondo trasparente al 100%, che le gif non supportano, senza rendere brutto e pixellato l'animazione. Funziona solo per i bordi rettangolari e senza sbiadire tra gli oggetti. Quindi ... come farlo correttamente? APNG potrebbe farlo, ma ovviamente Java non lo supporta con le librerie. –
Scambiare un gruppo di folletti potrebbe funzionare per questo. Ovviamente il caricamento dovrebbe essere fatto in un thread in background, come quello fornito da SwingWorker. –
Vedere anche questo [Q & A] (http://stackoverflow.com/questions/6238037/how-do-i-align-this-text-correctly). – trashgod