Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    creare un muro di mattoni all'interno di un frame

    ciao a tutti ragazzi, sto tentando di creare un giochino (il classico pong), ma mi trovo subito alle prime difficoltà: spiego,

    mi sono creato un panel e vorrei metterci dentro un muro di mattoni per il giochino,ho creato una classe mattone, e una classe per la stampa del muro, però quando lo vado ad eseguire non mi stampa nessun mattone,(inizialmente mi deve solo stampare il primo mattone poi per il muro di mattoni vero e proprio mi è stato consigliato di utilizzare GridLayout),mi potete aiutare e consigliare durante la stesura del gioco? vi ringrazio in anticipo........

    allego i codici.
    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    
    
    
    //classe per la stampa del muro di mattoni utilizzando ArrayList
    public class StampaMuro extends JFrame {
        private Mattone mt;   
        
        JPanel pn;
        public  StampaMuro(){   
            setSize(500,500);
            setLocation(200,200);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
            repaint();        
            
        }
        
        class MyPanel extends JPanel{
            //@Override
            public void paintComponent(Graphics g){            
                g.clearRect(0, 0, getWidth(), getHeight());           
                g.setColor(Color.red); 
                g.fillRect(mt.getX(), mt.getY(), mt.getW(), mt.getH());     
                setVisible(true);
                repaint();
            }
        }
        
       
        
      public static void main(String[] args){
            new StampaMuro();
    
      }
    
           
                   
       
    }

    ALTRO CODICE,

    codice:
    import javax.swing.*;
    import java.awt.*;
    
    
    public class Mattone  {
        private int x;  //x e y mi indicano l'origine del mattone
        private int y;
        private int w=50;  //w e h le dimensioni, larghezza e altezza
        private int h=20;    
            
        //-----------------------------------------------------------------------------------------------------------------
        public Mattone(int x,int y){
            x=this.x;
            y=this.y;
           
        }
        
        public int getX(){
            return this.x;
        }
        
        public int getY(){
            return this.y;
        }
        
         public int getW(){
            return this.w;
        }
        
        public int getH(){
            return this.h;
        }
      
        
    /*
         public static void main(String[] args){
            new Mattone(0,0);
        }
       */
    }

  2. #2
    primo problemino risolto(avevo fatto uno stupido errore) ora devo mettere nel panel il GridLayout per i mattoni, non penso sia una cosa difficile, se trovo difficoltà vi faccio sapere

    ciao e grazie mille...

  3. #3
    ciao ragazzi, non riesco a visualizzare la griglia, ma dove è che sbaglio? potreste aiutarmi, riposto il codice con le modifiche fatte: vi prego aiutatemi.......

    mille grazie.
    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    
    
    
    //classe per la stampa del muro di mattoni utilizzando ArrayList
    public class StampaMuro extends JFrame {
        //private Mattone mt;   
        private MyPanel mp;
        private int x;  //x e y mi indicano l'origine del mattone
        private int y;
        private int w=50;  //w e h le dimensioni, larghezza e altezza
        private int h=20;
        private GridLayout gl;
        
        
        public  StampaMuro(){        
            setSize(500,500);
            setLocation(200,200);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            gl=new GridLayout(7,6,2,2);      
            mp=new MyPanel();
            setContentPane(mp);
            setVisible(true);
            mp.repaint();        
            
        }
        
        class MyPanel extends JPanel{
            @Override
            public void paintComponent(Graphics g){   
                Graphics2D g2=(Graphics2D)g;
                g2.clearRect(0, 0, getWidth(), getHeight());            
                g2.setColor(Color.blue);               
                g2.fillRect(StampaMuro.this.x,StampaMuro.this.y ,StampaMuro.this.w ,StampaMuro.this.h );                
                setVisible(true);
                mp.repaint();
            }
        }
        
       
        
      public static void main(String[] args){
            new StampaMuro();
    
      }
    
           
                   
       
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    30
    Sbagli diverse cose: per esempio il GridLayout lo allochi e basta ma non lo associ a nessun Container, oppure usi setContentPane che non è il massimo della vita. ti mostro come lo farei io(l'ho provato, funziona ma è un po bruttino poi te lo devi aggiustare te, magari parametrizzando nel costruttore di Mattone il colore).


    codice:
    File Mattone.java
    public class Mattone extends javax.swing.JPanel{
    	public Mattone(){
    		super();
    		this.setBackground(java.awt.Color.blue);
    	}
    }
    codice:
    File Main.java
    public class Main extends javax.swing.JFrame{
    	public Main(){
    		super();
    		this.setSize(500,500);
    		this.setLocation(200,200);
    		this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
    		java.awt.Container contentPane = this.getContentPane();
    		javax.swing.JPanel mainPanel = new javax.swing.JPanel(new java.awt.GridLayout(7,6,2,2));
    
    		for (int i=0;i<3;i++){
    			for (int j=0;j<6;j++){
    		  		mainPanel.add(new Mattone());
    			}
    		} //inserisco i mattoni
    		for (int i=3;i<7;i++){
    			for (int j=0;j<6;j++){
    				mainPanel.add(new javax.swing.JPanel());
    			}
    		} //inserisco dei pannelli vuoti per riempire tutta la griglia.
    
    		contentPane.add(mainPanel); //inserisco il pannello con la griglia di mattoni nel content pane
    		this.setVisible(true);
    	}
    	public static void main(String args[]){
    		new Main();
    	}
    }
    Ti consiglio cmq di rifarti SEMPRE sulla documentazione java che è veramente fatta bene e ci trovi qualsiasi tipo di informazione!
    http://java.sun.com/javase/6/docs/

    Ciao.

  5. #5
    mille grazie stasera provo e poi ti faccio sapere

    ciao domenico.

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.