Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Problema con JFrame e JPanel
Forum - Java - Problema con JFrame e JPanel

Avatar
matrix25 (Normal User)
Newbie


Messaggi: 2
Iscritto: 15/11/2012

Segnala al moderatore
Postato alle 18:02
Giovedė, 15/11/2012
Buonasera ragazzi.
Ho un problema per quanto riguarda la gestione di pannelli e frame. Da poco uso Java quindi non ho molta conoscenza delle sue librerie. Il mio problema č nella realizzazione di in un menu di un gioco in cui devo in un' unica finestra voglio avere pių schermate. Ho realizzato una classe ereditando JFrame come č solito fare e ogni schermata del menu č un pannello. Ogni pannello ha dei suoi bottoni ecc.. Ho gestito ogni schermata con un metodo nella classe giocando con il setVisible() per i pannelli. Solo che ala schermata che corrisponde al metodo MenuPlayerSingle il vecchio pannello non si rende invisibile e non compare il nuovo ( che per ora č vuoto). Vorrei sapere perchč non va e se per caso conoscete un metodo migliore per gestire in generale un JFrame con pių pannelli.
Questo č il codice:
Codice sorgente - presumibilmente Java

  1. package javaapplication5;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5.  
  6.  
  7.  
  8.  
  9.  
  10.   class PrincipalMenu extends JFrame
  11. {
  12.      //Image screen;
  13.    protected JPanel pan1 = new JPanel();
  14.    protected JPanel pan2 = new JPanel();
  15.    protected JPanel pan3 = new JPanel();
  16.    protected JPanel pan4 = new JPanel();
  17.    protected JPanel pan5 = new JPanel();
  18.    protected JPanel pan6 = new JPanel();
  19.    //ImageIcon img = new ImageIcon();
  20.     public PrincipalMenu()
  21.     {
  22.      // img.getClass().getResource("sfondoprovvisorio.png");
  23.      // screen = img.getImage();
  24.      
  25.       setSize(800,600);
  26.       setLocation(200,100);
  27.       pan1.setLayout(null);
  28.       pan2.setLayout(null);
  29.      /* pan3.setLayout(null);
  30.       pan4.setLayout(null);
  31.       pan5.setLayout(null);
  32.       pan6.setLayout(null);*/
  33.       setVisible(true);
  34.       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  35.       setResizable(false);
  36.  
  37.     }
  38.     public void start()
  39.     {
  40.       pan1.setVisible(true);
  41.      pan2.setVisible(false);
  42.      pan3.setVisible(false);
  43.      pan4.setVisible(false);
  44.       pan5.setVisible(false);
  45.       pan6.setVisible(false);
  46.        pan1.setOpaque(false);
  47.        pan2.setOpaque(true);
  48.      JButton play = new JButton("GIOCA");
  49.      JButton help = new JButton("ISTRUZIONI");
  50.      JButton quit = new JButton("ESCI");
  51.      play.setEnabled(true);
  52.      help.setEnabled(true);
  53.      quit.setEnabled(true);
  54.       pan1.add(play);
  55.       pan1.add(help);
  56.       pan1.add(quit);
  57.      play.setBounds(300,200,200,50);
  58.      help.setBounds(300,300,200,50);
  59.      quit.setBounds(300,400,200,50);
  60.      play.addActionListener(new GestionButton());
  61.      quit.addActionListener(new GestionButton());
  62.      help.addActionListener(new GestionButton());
  63.      this.add(pan1);
  64.    }
  65.     private void menuHelp()
  66.     {
  67.  
  68.     pan1.setVisible(false);
  69.      pan2.setVisible(true);
  70.      pan3.setVisible(false);
  71.      pan4.setVisible(false);
  72.       pan5.setVisible(false);
  73.       pan6.setVisible(false);
  74.         pan2.setOpaque(false);
  75.         pan1.setOpaque(true);
  76.       JButton back = new JButton("INDIETRO");
  77.       back.setEnabled(true);
  78.       back.setBounds(300,400,200,50);
  79.       pan2.add(back);
  80.       back.addActionListener(new GestionButton());
  81.       this.add(pan2);
  82.     }
  83.   private void menuPlay()
  84.     {
  85.       pan1.setVisible(false);
  86.       pan2.setVisible(false);
  87.       pan3.setVisible(true);
  88.       pan4.setVisible(false);
  89.       pan5.setVisible(false);
  90.       pan6.setVisible(false);
  91.       JButton back = new JButton("INDIETRO");
  92.       JButton singlePlayer = new JButton ("GIOCATORE SINGOLO");
  93.       JButton multiPlayer = new JButton ("MULTIPLAYER");
  94.       JButton multiPlayer2 = new JButton ("MULTIPLAYER IN RETE");
  95.       singlePlayer.setBounds(300,200,200,50);
  96.       multiPlayer.setBounds(300,300,200,50);
  97.       multiPlayer2.setBounds(300,400,200,50);
  98.       singlePlayer.setEnabled(true);
  99.       multiPlayer.setEnabled(true);
  100.       multiPlayer2.setEnabled(true);
  101.       back.setEnabled(true);
  102.       back.setBounds(630,500,120,50);
  103.       pan3.add(back);
  104.       pan3.add(singlePlayer);
  105.       pan3.add(multiPlayer);
  106.       pan3.add(multiPlayer2);
  107.       back.addActionListener(new GestionButton());
  108.       singlePlayer.addActionListener(new GestionButton());
  109.       this.add(pan3);
  110.     }
  111.      private void MenuSinglePlayer()
  112.      {
  113.          pan1.setVisible(false);
  114.          pan2.setVisible(false);
  115.         pan3.setVisible(false);
  116.         pan4.setVisible(true); // Questo č il pannllo che non visualizza
  117.         pan5.setVisible(false);
  118.         pan6.setVisible(false);
  119.          this.add(pan4);
  120.  
  121.      }
  122.     /* private void MenuMultiPlayer(){}
  123.      private void MenuMultiPlayerNet (){}*/
  124.      
  125.  
  126.     class GestionButton implements ActionListener
  127.    {
  128.     public GestionButton() {}
  129.     public void actionPerformed(ActionEvent e) {
  130.         String button = e.getActionCommand();
  131.         if(button.equals("GIOCA"))
  132.         {
  133.            menuPlay();
  134.         }
  135.        if(button.equals("ESCI"))
  136.         {
  137.             System.exit(0);
  138.         }
  139.         if(button.equals("ISTRUZIONI"))
  140.         {
  141.            menuHelp();
  142.         }
  143.       if(button.equals("INDIETRO"))
  144.       {
  145.           start();
  146.       }
  147.       if(button.equals("GIOCATORE SINGOLO"))
  148.       {
  149.           MenuSinglePlayer();
  150.       }
  151.     }
  152.  }
  153. }
  154.  
  155.  
  156. public class JavaApplication5 {
  157.     public static void main(String[] args) {
  158.      PrincipalMenu menu = new PrincipalMenu();
  159.       menu.start();
  160.  
  161.     }
  162. }


Ultima modifica effettuata da matrix25 il 19/11/2012 alle 17:30
PM Quote
Avatar
matrix25 (Normal User)
Newbie


Messaggi: 2
Iscritto: 15/11/2012

Segnala al moderatore
Postato alle 18:12
Giovedė, 15/11/2012
Funziona cmq! Pių che altro adesso vorrei sapere se questa strategia č corretta...grazie ^.^

PM Quote