Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-02-2009, 11:18   #1
jarno
Member
 
Iscritto dal: Sep 2006
Messaggi: 64
[Java] sfondo sfumato

Ciao a tutti

vorrei avere uno sfondo sfumato, quale funzione devo utilizzare?

setBackground() mi da la possibilità di sfumare o devo utilizzare un'altra funzione?

in rete ho visto tale funzione setBackground(new Color(20, 20, 64) (i numeri li ho messi a caso) ma non funziona ugualmente.

Grazie in anticipo
jarno è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 11:34   #2
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Quel metodo ti imposta lo sfondo col colore che vuoi (non sfumato).
Sinceramente non credo esista un metodo gia pronto che ti permetta di sfumare lo sfondo. Potresti provare ad usare un immagine come sfondo (e quindi potrai metterci un immagine che sfuma come ti pare) oppure colorare il pannello di sfondo (meglio se ne metti uno apposito) riga per riga cambiando il colore
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 15:24   #3
jarno
Member
 
Iscritto dal: Sep 2006
Messaggi: 64
ok, farò come mi hai consigliato, mi creo un immagine-sfondo

ho un altro problema! Non riesco a visualizzare un immagine:

......
Image grafico = Toolkit.getDefaultToolkit().getImage ( "grafico.gif" );
tab.add("Tab 1",grafico);

e mi da errore all' "add()"
Multiple markers at this line
- The method add(String, Component) in the type JTabbedPane is not applicable for the arguments (String, Image)
- The method add(String, Component) in the type JTabbedPane is not applicable for the arguments (String, Image,
JButton)

come faccio caricare allora l'immagine nel tab?
jarno è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 16:23   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da jarno Guarda i messaggi
- The method add(String, Component) in the type JTabbedPane is not applicable for the arguments (String, Image)
Ti sta dicendo che hai passato un parametro di tipo errato al metodo add, che prende una String e un Component: tu invece gli passi una String (ok) e una Image che però non discende da Component quindi ovviamente non può andare bene.

Quote:
Originariamente inviato da jarno Guarda i messaggi
come faccio caricare allora l'immagine nel tab?
Poresti usare la tua Image per creare una javax.swing.ImageIcon da passare a sua volta come parametro al costruttore di una javax.swing.JLabel: quest'ultima essendo un Component può essere passata come parametro al metodo add della tua JTabbedPane.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 17:56   #5
jarno
Member
 
Iscritto dal: Sep 2006
Messaggi: 64
grazie mille per tutto

ImageIcon img=new ImageIcon("C:\\grafico.gif");
JLabel img2 = new JLabel(img);
tab.add("Tab 1", img2 );

riporto lo script corretto per chi ne ha bisogno

dato che siamo in tema, per caricarne due di immagini? uno sotto l'altra.
Ovviamente non posso passare due parametri image all' add(). Devo creare un vettore? e che tipo di vettore? scusate le mille domande, ma la grafica di java la sto imparando solo ora

Ultima modifica di jarno : 18-02-2009 alle 18:06.
jarno è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 18:10   #6
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
ti crei due label con immagini diverse, le metti in un JPanel con layout appropriato e metti il JPanel nel tuo JTabbedPane esattamente come gia fai per la label
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 19:30   #7
jarno
Member
 
Iscritto dal: Sep 2006
Messaggi: 64
penso che in teoria dovrei fare una cosa del genere:

.............
ImageIcon img=new ImageIcon("C:\\grafico.gif");
JLabel img2 = new JLabel(img);
ImageIcon img3=new ImageIcon("C:\\grafico2.png");
JLabel img4 = new JLabel(img3);

JPanel insieme;

insieme.addLayoutComponent("figura1",img2);
insieme.addLayoutComponent("figura1",img4);

tabbedPane.addTab("Tab1", insieme);

ma mi da errore a quasta righe:

insieme.addLayoutComponent("figura1",img2);
insieme.addLayoutComponent("figura1",img4);

The method addLayoutComponent(String, JLabel) is undefined for the type JPanel

come dovrei fare? (intanto continuo a ringraziarvi della disponibilità )
jarno è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 20:47   #8
jarno
Member
 
Iscritto dal: Sep 2006
Messaggi: 64
ho continuato così

ImageIcon img=new ImageIcon("C:\\grafico.gif");
JLabel img2 = new JLabel(img);
ImageIcon img3=new ImageIcon("C:\\grafico2.png");
JLabel img4 = new JLabel(img3);

LayoutManager insieme = null;

insieme.addLayoutComponent("figura1",img2);
insieme.addLayoutComponent("figura2",img4);

JPanel insieme2= new JPanel(insieme);


JTabbedPane tabbedPane = new JTabbedPane();



tabbedPane.addTab("Temperature", insieme2);

ma purtroppo mi da errore alla variabile insieme, dicendomi che:

The local variable insieme may not have been initialized

allora ho fatto:

LayoutManager insieme=null;

non mi visualizza più errore, ma quando lo lancio la finestra è completamente vuota

Ultima modifica di jarno : 18-02-2009 alle 20:50.
jarno è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2009, 21: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
Old 20-02-2009, 10:11   #10
jarno
Member
 
Iscritto dal: Sep 2006
Messaggi: 64
come faccio a richiamare panel nel main?
pensavo di scrivere una cosa del genere

background(panel);

ma giustamente mi da errore in quanto

public Background()Constructs a Background node with default parameters. The default values are as follows:
color : black (0,0,0)
image : null
geometry : null
image scale mode : SCALE_NONE
application bounds : null
application bounding leaf : null


come dovrei fare?
(in questi giorni sto imparando tante di quelle cose che poi nelle cose semplici mi perdo XD )

Ultima modifica di jarno : 20-02-2009 alle 10:21.
jarno è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 18:48   #11
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quel Background lì sembra un javax.media.Background, di Java3D.

Comunque non è quello.

"panel" è un JPanel tale quale agli altri a parte avere lo sfondo sfumato.

Non si tratta tanto <<di richiamarlo nel main>>, locuzione un po' ambigua, quanto di usarlo come un qualsiasi altro contenitore: ci infili dentro qualcosa e poi lo aggiungi a sua volta ad una finestra.
__________________
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
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
Amazon, ecco i super sconti del weekend:...
Scovare un bug di sicurezza sui disposit...
Offerta Amazon su NordVPN: proteggi 10 d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v