Discussione: [Java] sfondo sfumato
View Single Post
Old 18-02-2009, 22:53   #9
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
A intuito ci sei quasi. Devi usare un LayoutManager ma non propriamente in quel modo. Le GUI Java sono fatte a matrioska. Infili componenti dentro a contenitori che a loro volta sono componenti e possono essere infilati in contenitori eccetera eccetera.

Il LayoutManager dice "dove" fa a finire un componente aggiunto ad un contenitore.

Ogni contenitore ha il suo LayoutManager. Per mettere un'immagine sotto ad un altra in una scheda di un JTabbedPane posso prendere un contenitore generico, JPanel, dirgli di usare un LayoutManager che mette una cosa sopra all'altra, aggiungere le due immagini e aggiungere il JPanel come scheda del JTabbedPane.

Ad esempio:

LayoutManager layMan = new GridLayout(2, 1);
JPanel contenitoreImmagini = new JPanel();
contenitoreImmagini.setLayout(layMan);
contenitoreImmagini.add(img2);
contenitoreImmagini.add(img4);
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("temperature", contenitoreImmagini);

Quanto allo sfondo è più efficace colorare lo sfondo del pannello. Fortunatamente non occorre farlo riga per riga. Per colorare un pannello devi sovrascrivere il suo metodo

protected void paintComponent(Graphics graphics).

Esempio:

se questo è un pannello normale

JPanel panel = new JPanel();

questo è un pannello con lo sfondo sfumato da bianco (in alto) a nero (in basso)

Codice:
JPane panel = new JPanel() 	{
	protected void paintComponent(Graphics graphics) {
		super.paintComponent(graphics);
		Graphics2D g = (Graphics2D)graphics;
		GradientPaint gradient = new GradientPaint(0, 0, Color.WHITE, 0, getHeight() - 1, Color.BLACK);
		g.setPaint(gradient);
		g.fillRect(0, 0, getWidth(), getHeight());
	}
};
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso