Newsgroup: it.comp.java
Titolo: impostare il colore di sfondo.

Sto iniziando con java e con l'aiuto di un manuale seguo alcuni esempi.
Ho scritto 2 righe di codice per poter visualizzare una finestra con del 
testo ma non riesco a cambiare il colore dell fondo alla finestra.
Il codice e':
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
class TextString extends JPanel {
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Font f = new Font("SansSerif", Font.BOLD, 14);
        g.setFont(f);
        g.setColor(Color.blue);
        g.drawString("Ciao, questa e' una prova testo!", 75, 100);
    }
}
class CenteredFrame extends JFrame {
    public CenteredFrame() {
        setTitle("CenteredFrame");
        addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension d = tk.getScreenSize();
        int screenHeight = d.height;
        int screenWidth = d.width;
        setSize(screenWidth/2, screenHeight/2);
        setLocation(screenWidth/4, screenHeight/4);
        Image img = tk.getImage("logo.gif");
        setIconImage(img);
        Container contentPane = getContentPane();
        contentPane.add(new TextString());
    }
}
public class CenteredTest {
    public static void main(String[] args) {
        JFrame frame = new CenteredFrame();
        frame.setBackground(Color.blue);
        frame.show();
    }
}
Molto semplice.
Col metodo setBackground mi aspetto di avere uno sfondo blu, invece non 
cambia nulla, qualciasi colore metta la finestra resta grigia.
Cosa manca?
Grazie.

 }
Comunque non credo sia un modo pulito di operare, prova a dare un'occhiata
alla struttura delle JFrame e di cio che va messo al loro interno, ed al
modo per farlo.
Dai un'occhio anche ai Layout.
Ciao e Buon Anno.
--
Magellano

}
-- 
Ciao
	Fabrizio C.

>}
Avevo letto nel manuale "java2 i fondamenti" della McGrawHill che per le 
finestre ed i frame e' meglio chiamare "show" e non "setVisible" perche' 
"show" rende visibile la finestra e la porta in primo piano.

 "show" rende visibile la finestra e la porta in primo piano.
show
public void show()
  Deprecated. As of JDK version 1.1, replaced by setVisible(boolean).
Ciao ;)

   Deprecated. As of JDK version 1.1, replaced by setVisible(boolean).
Ma questo si riferisce al metodo show della classe Component.
Vi è anche il metodo show della classe Window che non risulta deprecated
Maurizio.

"Maurizio." <mau...@libero.itA> ha scritto nel messaggio
news:jFFR9.80092$Ou4.2...@twister2.libero.it...

hai ragione, non avevo guardato bene...
Beh, allora aspettiamo la risposta di qualcuno che lo sappia :)

 Beh, allora aspettiamo la risposta di qualcuno che lo sappia :)
Utilizzando frame.show() e compilando con l'opzione -deprecated non mi viene 
rilevato nessun warning.

"show" rende visibile la finestra e la porta in primo piano.
In effetti ho visto che l'override di show() prensente in Window non è 
deprecato.
Ho constatato anche quello che dici riguardo al portare in primo piano.
Io continuo a preferire setVisible() :-)
E' il codice che si trova sempre (o quasi?) negli esempi del Tutorial Sun.
Inoltre, non mi piace molto che show abbia il "doppio compito" di rendere 
visibile e portare in primo piano: preferirei l'accoppiata setVisible + 
toFront nel caso.
Ma magari si tratta solo di questione di gusti... :-)
-- 
Ciao
	Fabrizio C.