Newsgroup: it.comp.java
Titolo: Disegnare in un pannello?

Altro dubbietto...ho visto nelle applet il metodo paint che riscrivevo
secondo le mie esigenze...
ma se voglio creare un pannello al cui interno voglio inseirire dei
rettangoli, immagini, bottoni e quant'altro...devo obbligatoriamente creare
una nuova classe che estende Panel e quindi riscrivere quà il metodo paint?
Oppure posso fare qualcosa direttamente dopo il Panel p = new Panel?!
grazie
Byez
B@STI

 B@STI
Lo puoi fare direttamente nell'applet istanziando un oggetto panel:
JPanel p = new JPanel();
p.setLayout(null);   // è importante per aggiungere componenti altrimenti
li mette in posizioni che a te non andrebbero bene (vedi il LayoutManager)
p.setBackground(new java.awt.Color(194, 213, 228)); //per esempio...
p.add(jbutton);  // se vuoi aggiungere un bottone
getContentPane().add(p);  // così inserisci il panel nell'applet
p.setBounds(0, 0, 940, 520);  // in questo modo dai le coordinate del
panel all'interno dell'applet
Spero vada bene.
ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

> Spero vada bene.
emh, sorry, mi sono espresso male...mi riferivo all'utilizzo del metodo
paint delle applet, ma io sto lavorando con i frame!
Ho visto un codice che per disegnare un rettangolo in un pannello creava una
classe che estendeva Panel e poi oltre al costruttore della medesima,
implementava anche il metodo paint.
Quello che volevo dire č...se nel costruttore del Frame oppure in un metodo
che mi genera/restituisce una pannello (senza usare una nuova
classe)....quindi subito dopo aver fatto istruzioni del tipo:
Panel p = new Panel();
Button a = new Button("pippo");
p.add(a);
Graphics g;
g.draw ...etc..etc...
č fattibile una cosa simile? o meglio se sě come che in questo modo mi dice
che g non č inizializzata...dopodichč paint dove lo applico?
Non so se ora sono riuscito a spiegare il mio dubbio.... ^__^
1000grazie
byez
B@STI

è fattibile una cosa simile? 
import java.awt.*;
import java.awt.event.*;
public class MyFrame extends Frame
{
	public static void main(String[] args)
	{
		new MyFrame();
	}
	public MyFrame()
	{
		this.addWindowListener(
			new WindowAdapter()
			{
				public void windowClosing(
					WindowEvent e)
				{
					System.exit(0);
				}
			});	
		this.add(new MyPanel());
		this.setSize(640,480);
		this.setVisible(true);
	}
}
class MyPanel extends Panel
{
	public void paint(Graphics g)
	{	
		super.paint(g);
g.drawRect(10,10,this.getWidth()-20,this.getHeight()-20);
	}
}

 }
perfetto...questo è quello che ho visto...ma non c'è nessun'altro modo per
ottenere la stessa cosa? Era questa la mia domanda!
cmq grazie 1000 anche a te!
byez
B@STI

ottenere la stessa cosa? Era questa la mia domanda!
Cosa ha questo che non va? Specifica meglio le tue esigenze...

g.draw ...etc..etc...
Frame f=new Frame();
f.setSize(640,480);
Panel p=new Panel();
f.add(p);
f.setVisible(true);
p.getGraphics().drawRect(10,10,p.getWidth()-p.getHeight()-20);
Cosě perň alla prima volta che l'interfaccia viene ridisegnata il
rettangolo viene *mangiato*...
E' per questo che conviene sovrascrivere il metodo paint().

 E' per questo che conviene sovrascrivere il metodo paint().
ok pito!
E ora ho risolto anche l'altro problema :D
Che non mi visualizzava il pallino...ho dovuto gestire l'if nel paint :)
many many thanks
byez
B@STI