Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.java > #9413

Re: Passare da un JPanel ad un altro...

X-Received by 2002:a05:622a:1986:b0:3e0:e195:ebe8 with SMTP id u6-20020a05622a198600b003e0e195ebe8mr72448qtc.8.1679594248745; Thu, 23 Mar 2023 10:57:28 -0700 (PDT)
X-Received by 2002:a05:6214:14e8:b0:56e:fbbe:515f with SMTP id k8-20020a05621414e800b0056efbbe515fmr1639800qvw.10.1679594248479; Thu, 23 Mar 2023 10:57:28 -0700 (PDT)
Path csiph.com!weretis.net!feeder6.news.weretis.net!usenet.blueworldhosting.com!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups it.comp.java
Date Thu, 23 Mar 2023 10:57:28 -0700 (PDT)
In-Reply-To <70e0dea0-15cd-450b-8120-1be447992282@googlegroups.com>
Injection-Info google-groups.googlegroups.com; posting-host=84.221.144.178; posting-account=tx3G9AoAAABkCTth2ahY7NehMz0H-NbQ
NNTP-Posting-Host 84.221.144.178
References <6275623a-e8fa-476f-9c27-a70f493a93eb@googlegroups.com> <k78iij$uhj$3@speranza.aioe.org> <c58a07f3-a520-46a0-8358-f6353e5daad0@googlegroups.com> <k7areu$b6d$2@speranza.aioe.org> <fa8de754-3d68-4f78-8bbf-57161d9feba4@googlegroups.com> <70e0dea0-15cd-450b-8120-1be447992282@googlegroups.com>
User-Agent G2/1.0
MIME-Version 1.0
Message-ID <aec30c0d-8f5c-4524-9056-fa93aea22544n@googlegroups.com> (permalink)
Subject Re: Passare da un JPanel ad un altro...
From stefano Cambazzu <stefano.cambazzu@gmail.com>
Injection-Date Thu, 23 Mar 2023 17:57:28 +0000
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding quoted-printable
X-Received-Bytes 4598
Xref csiph.com it.comp.java:9413

Show key headers only | View raw


Ciao a tutti , 
Ho creato un classe principale 

import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;
import java.io.IOException;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;






public class fantasy1 extends JFrame {
public static  Clip audio;
   
    public static void main(String[] args) {
       
    
  
     colonnasonora("./sound/storia.wav");
        
       JFrame myFrame = new JFrame("Fantasy 1");

      
     //Se larghezza 768 --> 16 *48 (Muro) --> 768 - Altezza 576 --> 48 *12 

        myFrame.setSize(728, 455); // 768 * 576 -> risoluzione dell'immagine oelemento 
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myFrame.setLocationRelativeTo(null);
       myFrame.setResizable(false);
// vorrei scrivere se premo la barra spaziatrice carichi l'immagine statica 1
      la seconda volta immagine 2 la terza  immagine 3
 La 4 volta entra  nel gioco e carico la classe dedicata GameFrame
GameFrame prende il controllo della tastiera programmata per il player
        myFrame.add(new cover()); // Copertina
        //myFrame.add(new GameFrame()); // Gioco

        myFrame.setIconImage(new ImageIcon("./img/ico.png").getImage());
        myFrame.setVisible(true); 
      



    }

    public static void colonnasonora ( String musica){
        
        
        try {
             audio = AudioSystem.getClip();
            
            audio.open(AudioSystem.getAudioInputStream(new File(musica)));
            audio.loop(Clip.LOOP_CONTINUOUSLY);
            audio.start();
        } catch (Exception e) {
            System.out.println(e);
        }
    } 

  
}


Ho la necessità il programma parte con il panello definito sulla classe cover
questa deve rimanere in ascolto dei tasti.
se non viene premuto nulla la cover carica slide immagini a ripetizione.
Alla pressione del tasto "Space"
Viene caricata un immagine statica 1
la seconda volta un immagine statica 2
alla terza un immagine statica 3
alla quarta volta il programma passa dal panello definito nella classe cover alla classe GameFrame.
Questa classe rimane in ascolto dei tasti a seconda del tasto premuto muove il player
ecco un seudo codice

usa cosa del genere
      myFrame.add(new cover()); // Copertina caricata all'avvio dell'applicazione
cont= 0;
if (e.event =='space' ) {
if ( cont ==0) {
loadimage1;
cont= cont+1;
} esle if ( cont ==1) {
loadimage2;
cont= cont+1;
}  esle if ( cont ==2) {
loadimage3;
cont= cont+1;
}  else
myFrame.add(new GameFrame()); //Modifico il panello e prendo controllo dei tasti
// attiva tasti gestione player
}

Come faccio a cambiare il panello in fase di avvio e gestire i tasti in modo che all'inizio vengono rilevati dalla classe cover è successivamente viene caricata la classe  GameFrame cambiando evento tasti dedicati al player?

Grazie mille

Back to it.comp.java | Previous | Next | Find similar


Thread

Re: Passare da un JPanel ad un altro... stefano Cambazzu <stefano.cambazzu@gmail.com> - 2023-03-23 10:57 -0700

csiph-web