Visualizzazione dei risultati da 1 a 5 su 5

Discussione: cambio del JFrame....

  1. #1
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515

    cambio del JFrame....

    ciao a tutti con questo cod:

    codice:
    public void Animate() {   
    		mPanel = new MyImage();
    		frameAnimazione = new JFrame("Animazione Immagine");
    		frameAnimazione.setSize(600, 800);
    		frameAnimazione.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
    	    frameAnimazione.getContentPane().add(mPanel);
    	    frameAnimazione.getContentPane().setBackground(Color.lightGray);
    	    frameAnimazione.setLocation(500, 100);
    	    frameAnimazione.setVisible(true);    
    	}
    non fa altro che aprire un JFrame e inserire un'animazione....

    il JFrame lo vorrei inserire in un GridBagLayout...come faccio???

    al posto del JFrame ho sostituito il JPanel...ma in questo modo l'animazione non appare...

    come faccio???? mi stò ingrippando...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    JFrame rappresenta una finestra, quindi un Top-Level container.
    Un Top-Level container non può essere inserito dentro a nulla (altrimenti non sarebbe un Top-Level container).

    Sostituire un JFrame con un JPanel non ha alcun senso perchè sono cose assolutamente diverse con scopi diversi: una finestra e un pannello, per la precisione.. ovviamente, un pannello necessita per forza di cose di una finestra, se lo si vuole visualizzare... da solo non sta in piedi.

    Detto questo, cercherei di fare mente locale su cosa vuoi fare, come lo vuoi fare e, soprattutto, su chi manipola questa animazione e dove la renderizza.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    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???

    io la vorrei inserire in un GridBagLayout ma mi va a sfasare tutto il GridBadLayout....

    per un testo utilizzo un JTextArea o un JTextPane o JEditorPane... ma per un'immagine di animazione..cosa potrei utilizzare???

    questo è il problemino....

  4. #4
    Mi sa hai un po di confusione in testa....
    Il layout ti serve per sapere come "impaginare" la tua finestra
    Non puoi andare a mettere un immagine in un Layout.
    Semmai devi crearti il tuo JFrame, poi applichi il layout che gestirà al meglio il tuo spazio, (nel tuo caso anche un BorderLayout sarebbe sufficiente) e poi aggiungi l'animazione al JFrame/JPanel (ovviamente se scegli un JPanel poi devi aggiungerlo al JFrame).
    Tra l'altro il GridBagLayout non è molto facile anzi...e infatti lo si usa per creare delle aree che sarebbe difficile da creare con gli altri layout.
    Quindi dove devi aggiungere un'animazione? JFrame o JPanel vanno benissimo con un normale layout.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.