Salve, io ho un problema e non so come posso risolvere.
In pratica sto costruendo un editor di Livello.
Io ho un Frame su cui disegno 2 pannelli, Il primo che si chiama Oggetti contiene dei bottoni che rappresentano gli oggetti da disegnare sull'altro pannello.
Il secondo che si chiama "Pannello" e dove vado a disegnare gli oggetti.
Come posso fare per passare l'evento della pressione del mouse da un pannello ad un altro???
E poi dove attacco il MouseListener???(nel Frame,nel pannello Oggetto, oppure in Pannello)???
Allego codice frame
Pannello Oggetto:codice:public class FrameEditor1 extends JFrame { String frameTitle = "Editor Flying Monkey vers. 1.0"; JPanel pannello; JPanel oggetti; JPanel barra; public FrameEditor1() { super(); this.setTitle(frameTitle); this.setSize(Costanti.WIDTH,Costanti.HEIGHT ); //dimensioni della finestra //this.setUndecorated(true);//non fa vedere i bottoni di ridimensionamento e chiusura // this.setResizable(false); this.setLayout(new BorderLayout()); this.setDefaultCloseOperation(EXIT_ON_CLOSE); setLocationRelativeTo(null);//centra la finestra oggetti= new Oggetti(); barra= new Barra(); pannello =new Pannello(); this.add(oggetti,BorderLayout.WEST); this.add(barra,BorderLayout.NORTH); this.add(new JScrollPane(pannello),BorderLayout.CENTER); } }
Pannello "Pannello":codice:public class Oggetti extends JPanel { private GestioneImmagini gm; private JButton scimmia; private JButton uccello; private JButton difesa; private JButton palla; private JButton banana; private JButton casco; private JButton ananas; private JButton fulmine; private JButton cento; private JButton trecento; private JLabel oggetto; private JPanel oggetti; public Oggetti () { gm=new GestioneImmagini(); ImageIcon ico5 =new ImageIcon(gm.getImmagineuccellof()); ImageIcon ico3 =new ImageIcon(gm.getImmaginepalla()); ImageIcon ico4 =new ImageIcon(gm.getImmaginefaccia()); ImageIcon ico6 =new ImageIcon(gm.getImmaginebananae()); ImageIcon ico7 =new ImageIcon(gm.getImmagineananas()); ImageIcon ico8 =new ImageIcon(gm.getImmaginefulmine1()); ImageIcon ico9 =new ImageIcon(gm.getImmaginecasco()); ImageIcon ico10 =new ImageIcon(gm.getImmaginedifesae()); ImageIcon ico11 =new ImageIcon(gm.getImmaginep100()); ImageIcon ico12 =new ImageIcon(gm.getImmaginep300()); this.setLayout(new BorderLayout()); oggetto=new JLabel(); oggetto.setText(" Oggetti: "); oggetto.setFont(new Font("Arial",Font.BOLD,22)); this.add(oggetto,"North"); oggetti=new JPanel(); oggetti.setLayout(new GridLayout(5,2)); scimmia=new JButton(); scimmia.setMargin (new Insets (0, 0, 0, 0)); scimmia.setContentAreaFilled(false); scimmia.setIcon(ico4); scimmia.setPressedIcon(ico4); scimmia.setBorderPainted(false); scimmia.setMargin (new Insets (0, 0, 0, 0)); scimmia.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); scimmia.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(scimmia); uccello=new JButton(); uccello.setMargin (new Insets (0, 0, 0, 0)); uccello.setContentAreaFilled(false); uccello.setIcon(ico5); uccello.setPressedIcon(ico5); uccello.setBorderPainted(false); uccello.setMargin (new Insets (0, 0, 0, 0)); uccello.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); uccello.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(uccello); difesa=new JButton(); difesa.setMargin (new Insets (0, 0, 0, 0)); difesa.setContentAreaFilled(false); difesa.setIcon(ico10); difesa.setPressedIcon(ico10); difesa.setBorderPainted(false); difesa.setMargin (new Insets (0, 0, 0, 0)); difesa.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); difesa.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(difesa); palla=new JButton(); palla.setMargin (new Insets (0, 0, 0, 0)); palla.setContentAreaFilled(false); palla.setIcon(ico3); palla.setPressedIcon(ico3); palla.setBorderPainted(false); palla.setMargin (new Insets (0, 0, 0, 0)); palla.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); palla.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(palla); banana=new JButton(); banana.setMargin (new Insets (0, 0, 0, 0)); banana.setContentAreaFilled(false); banana.setIcon(ico6); banana.setPressedIcon(ico6); banana.setBorderPainted(false); banana.setMargin (new Insets (0, 0, 0, 0)); banana.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); banana.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(banana); casco=new JButton(); casco.setMargin (new Insets (0, 0, 0, 0)); casco.setContentAreaFilled(false); casco.setIcon(ico9); casco.setPressedIcon(ico9); casco.setBorderPainted(false); casco.setMargin (new Insets (0, 0, 0, 0)); casco.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); casco.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(casco); ananas=new JButton(); ananas.setMargin (new Insets (0, 0, 0, 0)); ananas.setContentAreaFilled(false); ananas.setIcon(ico7); ananas.setPressedIcon(ico7); ananas.setBorderPainted(false); ananas.setMargin (new Insets (0, 0, 0, 0)); ananas.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); ananas.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(ananas); fulmine=new JButton(); fulmine.setMargin (new Insets (0, 0, 0, 0)); fulmine.setContentAreaFilled(false); fulmine.setIcon(ico8); fulmine.setPressedIcon(ico8); fulmine.setBorderPainted(false); fulmine.setMargin (new Insets (0, 0, 0, 0)); fulmine.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); fulmine.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(fulmine); cento=new JButton(); cento.setMargin (new Insets (0, 0, 0, 0)); cento.setContentAreaFilled(false); cento.setIcon(ico11); cento.setPressedIcon(ico11); cento.setBorderPainted(false); cento.setMargin (new Insets (0, 0, 0, 0)); cento.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); cento.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(cento); trecento=new JButton(); trecento.setMargin (new Insets (0, 0, 0, 0)); trecento.setContentAreaFilled(false); trecento.setIcon(ico12); trecento.setPressedIcon(ico12); trecento.setBorderPainted(false); trecento.setMargin (new Insets (0, 0, 0, 0)); trecento.setCursor (Cursor.getPredefinedCursor (Cursor.HAND_CURSOR)); trecento.setToolTipText("Premi il bottone per selezionare l'elemento corrente"); oggetti.add(trecento); this.add(oggetti,"Center"); } }
codice:public class Pannello extends JPanel implements Runnable { private GestioneImmagini gm; public Pannello() { new Thread(this).start(); gm=new GestioneImmagini(); setPreferredSize(new Dimension(Costanti.N*Costanti.CELLA,Costanti.HEIGHTGAME)); } public void disegna(Graphics g) { int indicemin=0; for (int i=0;i<Costanti.CELLA;i++) { g.drawImage(gm.getImmaginecielo(), indicemin,0,Costanti.WIDTH,Costanti.HEIGHTGAME,this); g.drawImage(gm.getImmaginemontagne(), indicemin,Costanti.HEIGHT-Costanti.HEIGHTMONTAGNE,Costanti.WIDTH,Costanti.HEIGHTMONTAGNE,this); g.drawImage(gm.getImmagineprato(), indicemin,Costanti.HEIGHT-Costanti.HEIGHTPRATO,Costanti.WIDTH,Costanti.HEIGHTPRATO,this); indicemin+=Costanti.WIDTH; } for(int x=0; x<=Costanti.N*Costanti.CELLA; x=x+Costanti.CELLA) { g.drawLine(x, 0, x, Costanti.M*Costanti.CELLA); } /* disegna le linee orizzontali */ for(int y=0; y<=Costanti.M*Costanti.CELLA; y=y+Costanti.CELLA) { g.drawLine(0, y, Costanti.N*Costanti.CELLA, y); } } public void paintComponent(Graphics g){ super.paintComponent(g); disegna(g); } public GestioneImmagini getgm() { return gm; } public void run() { while (true) { repaint(); try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }

Rispondi quotando