Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1

    okLivello2

    ok ti posto il codice, io ho messo il button in un altra classe per fare una cosa molto in ordine e vorrei solo sapere come mettere il button (classe: livello2) in un panel (classe: Gioco). come posso fare ?

    CLASSE MAIN

    codice:
    public Gioco()
      {
        caricaRisorse();
        iniziaGioco();
        inizializza();
        aggiungiListener();
        
        
      }
    
    
      private void inizializza()
      {
    
    //Questo è il Jpanel in cui dobbiamo mettere il button che si trova nel Livello2
    
    
        this.finestra.setName("Pioggia Fruit by Richisottini");
        this.finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.finestra.setPreferredSize(new Dimension(900, 600));
        this.finestra.setResizable(false);
    
    
        JPanel contenitore = new JPanel()
        {
          protected void paintComponent(Graphics graphics)
          {
            super.paintComponent(graphics);
    
    
            graphics.drawImage(Gioco.this.sfondofinestra, 0, 0, 1500, 1320, this);
          }
        };
        this.Gioca = new JButton("")
        {
          protected void paintComponent(Graphics graphics)
          {
            super.paintComponent(graphics);
    
    
            graphics.drawImage(Gioco.this.bottonegioca, 0, 0, 200, (int) 107.5, this);
          }
        };
        this.Record = new JButton("")
        {
          protected void paintComponent(Graphics graphics)
          {
            super.paintComponent(graphics);
    
    
            graphics.drawImage(Gioco.this.bottonerecord, 0, 0, 200, (int) 107.5, this);
          }
        };
        this.Info = new JButton("")
        {
          protected void paintComponent(Graphics graphics)
          {
            super.paintComponent(graphics);
    
    
            graphics.drawImage(Gioco.this.bottoneinfo, 0, 0, 200, (int) 107.5, this);
          }
        };
        this.Quit = new JButton("")
        {
          protected void paintComponent(Graphics graphics)
          {
            super.paintComponent(graphics);
    
    
            graphics.drawImage(Gioco.this.bottonequit, 0, 0, (int) 109, (int) 109, this);
          }
        };
        
        
    
    
        SpringLayout layout = new SpringLayout();
        contenitore.setLayout(layout);
    
    
        contenitore.add(this.Gioca);
        contenitore.add(this.Record);
        contenitore.add(this.Info);
        contenitore.add(this.Quit);
        
        
        
        
    
    
        layout.putConstraint("West", this.Gioca, 350, "West", contenitore);
        layout.putConstraint("North", this.Gioca, 20, "North", contenitore);
        layout.putConstraint("East", this.Gioca, -350, "East", contenitore);
    
    
        layout.putConstraint("South", this.Gioca, -450, "North", this.Gioca);
    
    
        layout.putConstraint("West", this.Gioca, 350, "West", contenitore);
        layout.putConstraint("East", this.Gioca, -350, "East", contenitore);
    
    
        layout.putConstraint("South", this.Gioca, -450, "North", this.Gioca);
    
    
        layout.putConstraint("West", this.Gioca, 350, "West", contenitore);
        layout.putConstraint("East", this.Gioca, -350, "East", contenitore);
        layout.putConstraint("South", this.Gioca, -450, "South", contenitore);
        
        
        
    
    
        layout.putConstraint("West", this.Record, 680, "West", contenitore);
        layout.putConstraint("North", this.Record, 20, "North", contenitore);
        layout.putConstraint("East", this.Record, -20, "East", contenitore);
    
    
        layout.putConstraint("South", this.Record, -450, "North", this.Record);
    
    
        layout.putConstraint("West", this.Record, 680, "West", contenitore);
        layout.putConstraint("East", this.Record, -20, "East", contenitore);
    
    
        layout.putConstraint("South", this.Record, -450, "North", this.Record);
    
    
        layout.putConstraint("West", this.Record, 680, "West", contenitore);
        layout.putConstraint("East", this.Record, -20, "East", contenitore);
        layout.putConstraint("South", this.Record, -450, "South", contenitore);
        
        
        
        
        layout.putConstraint("West", this.Info, 20, "West", contenitore);
        layout.putConstraint("North", this.Info, 20, "North", contenitore);
        layout.putConstraint("East", this.Info, -680, "East", contenitore);
    
    
        layout.putConstraint("South", this.Info, -450, "North", this.Info);
    
    
        layout.putConstraint("West", this.Info, 20, "West", contenitore);
        layout.putConstraint("East", this.Info, -680, "East", contenitore);
    
    
        layout.putConstraint("South", this.Info, -450, "North", this.Info);
    
    
        layout.putConstraint("West", this.Info, 20, "West", contenitore);
        layout.putConstraint("East", this.Info, -680, "East", contenitore);
        layout.putConstraint("South", this.Info, -450, "South", contenitore);
        
        
        
    
    
        layout.putConstraint("West", this.Quit, 770, "West", contenitore);
        layout.putConstraint("North", this.Quit, 450, "North", contenitore);
        layout.putConstraint("East", this.Quit, -20, "East", contenitore);
    
    
        layout.putConstraint("South", this.Quit, -20, "North", this.Quit);
    
    
        layout.putConstraint("West", this.Quit, 770, "West", contenitore);
        layout.putConstraint("East", this.Quit, -20, "East", contenitore);
    
    
        layout.putConstraint("South", this.Quit, -20, "North", this.Quit);
    
    
        layout.putConstraint("West", this.Quit, 770, "West", contenitore);
        layout.putConstraint("East", this.Quit, -20, "East", contenitore);
        layout.putConstraint("South", this.Quit, -20, "South", contenitore);
        
        
    
    
        this.finestra.add(contenitore);
        this.finestra.pack();
        this.finestra.setVisible(true);
      }
    
    
      void aggiungiListener()
      {
        this.Record.addMouseListener(new MouseAdapter()
        {
          public void mouseClicked(MouseEvent e)
          {
          }
        });
        this.Info.addMouseListener(new MouseAdapter()
        {
          public void mouseClicked(MouseEvent e)
          {
            JPanel pannello = new JPanel()
                    
            {
              protected void paintComponent(Graphics graphics)
              {
                super.paintComponent(graphics);
    
    
                graphics.drawImage(Gioco.this.sfondoinfo, 0, 0, 750, 1050, this);
              }
            };
            Gioco.this.info.setDefaultCloseOperation(2);
            Gioco.this.info.add(pannello);
            Gioco.this.info.setSize(750, 1050);
            Gioco.this.info.setVisible(true);
          }
        });
        this.Quit.addMouseListener(new MouseAdapter()
        {
          public void mouseClicked(MouseEvent e)
          {
                System.exit(0);
             }
            });
          
             }
    
    
    
    
    
    
      public static void main(String[] args)
        throws FileNotFoundException, IOException
        {
        new Gioco();
    //.................................................. ............................................[/HTML]

    CLASSE LIVELLO2

    codice:
    public Livello2()
      {
        caricaRisorse();
        iniziaGioco();
        inizializza();
        aggiungiListener();
        
        
      }
    
    
      private void inizializza()
      {
        
      }
    
    
      void aggiungiListener()
      {
    //questo è il bottone che devo mettere nel panel nel class Gioco
          this.Gioca.addMouseListener(new MouseAdapter()
        {
          public void mouseClicked(MouseEvent e)
          {
            
            Livello2 gioco2 = new Livello2();
    
    
            Livello2.this.finestra.dispose();
            
    
    
            Dimension dimensione_finestra = new Dimension(1500, 1320);
            Livello2.this.finestra_gioco.setPreferredSize(dimensione_finestra);
            Livello2.this.finestra_gioco.setMaximumSize(dimensione_finestra);
    
    
            Livello2.this.finestra_gioco.pack();
            Livello2.this.finestra_gioco.setResizable(false);
            
         
            Livello2.this.finestra_gioco.setVisible(true);
    
    
            Livello2.this.finestra_gioco.add(gioco2);
    
    
            gioco2.addKeyListener(gioco2);
    
    
            Thread thread_gioco2 = new Thread(gioco2);
            thread_gioco2.start();
        }
        });
          }
    //...........................................................................
    COMUNQUE GRAZIE MILLE PER ALCUNE SPIEGAZIONI
    Ultima modifica di Richisottini; 03-09-2015 a 00:32

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Richisottini Visualizza il messaggio
    ok ti posto il codice, io ho messo il button in un altra classe per fare una cosa molto in ordine e vorrei solo sapere come mettere il button (classe: livello2) in un panel (classe: Gioco). come posso fare ?
    Mi spiace davvero dirtelo ma da quello che vedo ci sono troppe cose inappropriate, brutte e fumose.

    Perché devi disegnare una immagine sopra i pulsanti? Non sai che i pulsanti possono tranquillamente avere un Icon per visualizzare una icona/immagine? E oltretutto hai replicato 4 volte una anonymous inner class, senza quindi "intravedere" un design comune e riutilizzabile. Poi altre cose assurde tipo una costante double di cui fai il cast a int: (int) 107.5

    Troppe troppe anonymous inner class. Addirittura in Gioco una anonymous inner class per MouseAdapter nel cui mouseClicked c'è un'altra anonymous inner class per il pannello. Queste cose generalmente è bene non farle!

    Poi perché in Livello2 fai tanti Livello2.this.finestra_gioco.blabla? Se la anonymous inner class è in un metodo di istanza (ed è così) e finestra_gioco è un campo di istanza e non c'è uno "shadowing" del campo (e non è così) puoi benissimo usare solo finestra_gioco.blabla perché il campo è "visibile" anche dalla anonymous inner class.

    Non vorrei sembrare scortese, perché non lo sono ma: ti servono basi su Java e sulla programmazione ad oggetti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.