Originariamente inviato da paul78
ciao lele...infatti il problema è dove inserire l'animazione...mi spiego meglio...l'animazione funziona benissimo!!! ma se il JFrame e JPanel sono elementi TOP-LEVEL...dove lo potei inserire l'animazione???
JFrame è un Top-Level container, non JPanel.
io la vorrei inserire in un GridBagLayout ma mi va a sfasare tutto il GridBadLayout....
Premesso che non ho idea di cosa sia questa non meglio definita "animazione" e che non so come tu faccia a sapere che "funziona benissimo" se non riesci a visualizzarla (o, se riesci a visualizzarla, allora non capisco quale sia il problema), GridBagLayout è un LayoutManager che gestisce posizione e dimensione dei componenti all'interno di un contenitore. Quindi, un componente non si inserisce in un GridBagLayout, ma al massimo lo si può inserire in un contenitore (che può essere un JPanel) gestito da GridBagLayout.
per un testo utilizzo un JTextArea o un JTextPane o JEditorPane... ma per un'immagine di animazione..cosa potrei utilizzare???
Forse sto cominciando ad intuire... ma tutto dipente da che tipo di animazione è: se è una GIF animata la puoi inserire in un JLabel (che è perfettamente in grado di renderizzare anche immagini e GIF animate). Se è qualcosa d'altro (tipo un filmato) allora va cercato un componente in grado di renderizzarlo (e bisogna uscire dal core standard e affidarsi ad una libreria esterna... non ne conosco, non avendone mai avuto bisogno, ma "conosco" di nome JavaFX, che dovrebbe fare al caso tuo).
Questo piccolo esempio visualizza questa iconcina del forum
:
codice:
import java.awt.*;
import javax.swing.*;
import java.net.*;
public class GifAnimata extends JFrame {
public GifAnimata(URL myURL) {
Container c = getContentPane();
c.setLayout( null );
JLabel lbl = new JLabel( new ImageIcon(myURL) );
lbl.setBounds(30, 30, 50, 50);
c.add( lbl );
setTitle("Gif Animata");
setSize(800, 600);
setLocationRelativeTo( null );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setVisible( true );
}
public static void main(String[] args) {
try {
GifAnimata ga = new GifAnimata( new URL("http://forum.html.it/forum/images/smilies/metallica.gif") );
} catch (Exception e) {
System.err.println("URL mal scritta, impossibile visualizzare");
e.printStackTrace();
}
}
}
Ciao.