2009-07-04 21 views

Respuesta

55

Recupere el panel de contenido para el marco y utilice el método setBackground() heredado de Component para cambiar el color.

Ejemplo:

myJFrame.getContentPane().setBackground(desiredColor); 
2

Puede utilizar un contenedor de este modo:

Container c = JFrame.getContentPane(); 
c.setBackground(Color.red); 

Debe de importación supuesto java.awt.Color para la constante de color rojo .

28

para establecer el color de fondo para JFrame:

getContentPane().setBackground(Color.YELLOW); //Whatever color 
2

Aquí hay otro método:

private void RenkMouseClicked(java.awt.event.MouseEvent evt) { 
    renk = JColorChooser.showDialog(null, "Select the background color", 
      renk); 
    Container a = this.getContentPane(); 
    a.setBackground(renk); 
} 

estoy usando NetBeans IDE. Para mí, JFrame.getContentPane() no se ejecutó. Usé JFrame.getContentPane() clase equivalente this.getContentPane.

-1
import java.awt.*; 
import javax.swing.*; 

public class MySimpleLayout extends JFrame { 

     private Container c; 
     public MySimpleLayout(String str) { 
      super(str); 
      c=getContentPane(); 
      c.setLayout(null); 
      c.setBackground(Color.WHITE); 
     } 
} 
+0

nada nuevo en comparación con las respuestas de más edad, es allí ;-) Además de un par de no-nos: a) no se extienden si se puede alcanzar el requisito sin b) no mantener a los miembros de alias c) no lo hagas sin LayoutManager – kleopatra

+0

@kleopatra gracias a la respuesta. solo para principiantes ... –

-5

Probablemente el método más simple es la siguiente:

super.setBackground(Color.CYAN); 

debe extender JFrame en la clase antes de hacer esto!

+0

esto es incorrecto o está duplicado, dependiendo de dónde quieras llamar al método, en el marco directamente o en su panel de contenido – kleopatra

+0

@kleopatra Si esto se coloca en el constructor funcionaría ... –

+1

no solo eso no está especificado en la respuesta que dio, sino que es una repetición de lo que se respondió anteriormente. –

-4
frame.getContentPane().setBackground(Color.white); 
+2

nada nuevo en comparación con respuestas anteriores, ¿está allí ;-) – kleopatra

0

puede anular el método de pintura de JFrame y luego llenar que por su color favorito de la siguiente manera:

@Override 
public void paint(Graphics g) { 
    g.setColor(Color.red); 
    g.fillRect(0, 0, this.getWidth(), this.getHeight()); 
} 
3

¡Hola Yo tenía el mismo problema y después de muchos intentos me encontré con que el problema es que necesita un objeto de gráficos para poder dibujar, pintar (setBackgroundColor).

Mi código por lo general es la siguiente:

import javax.swing.*; 
import java.awt.*; 


public class DrawGraphics extends JFrame{ 

    public DrawGraphics(String title) throws HeadlessException { 
     super(title); 
     InitialElements(); 
    } 

    private void InitialElements(){ 
     setSize(300, 250); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setVisible(true); 
     // This one does not work 
     // getContentPane().setBackground(new Color(70, 80, 70)); 

    } 

    public void paint(Graphics draw){ 
     //Here you can perform any drawing like an oval... 
     draw.fillOval(40, 40, 60, 50); 

     getContentPane().setBackground(new Color(70,80,70)); 
    } 
} 

La parte que falta en casi todas las otras respuestas es dónde colocar el código. Entonces ahora usted sabe que va en pintura (Graphics g)

8

usando:

setBackground(Color.red); 

no funciona correctamente.

uso

Container c = JFrame.getContentPane(); 

c.setBackground(Color.red); 

o

myJFrame.getContentPane().setBackground(Color.red); 
+3

¿Por qué responder si ya hay la misma respuesta hecha por otros usuarios? –

+0

su primera afirmación tiene sentido, es decir, setBackGround no funciona correctamente. – crackerplace

+1

Podría editar la respuesta correcta para esa pequeña línea – Argento

-1

Crear un JLabel, cambiar su tamaño por lo que cubre su JFrame. Haga clic con el botón derecho en JLabel, Buscar icono y haga clic en el botón (...). Elija una imagen haciendo clic en el botón Importar a proyecto, luego haga clic en finalizar.En el panel de Navigator, (abajo a la izquierda por defecto, si está deshabilitado, vaya a la pestaña de Windows de su Netbeans IDE y habilítelo).

usando Jlable puede establecer el color de fondo y también la imagen.

1

Prueba esto:

this.getContentPane().setBackground(Color.white); 
+0

@midhunhk Una respuesta de solo código podría no ser buena, pero sigue siendo una respuesta. Te recomendaría esta publicación sobre LQPRQ: [Lo estás haciendo mal: una petición de cordura en la cola de Mensajes de baja calidad] (http://meta.stackoverflow.com/questions/287563/youre-doing-it- wrong-a-declara-por-sanity-in-the-low-quality-posts-queue) – FelixSFD

+0

Siento que esta es una sugerencia para una solución que puede o no ser la respuesta. Si el OP intenta esto y encuentra que está funcionando, pueden pedirle que agregue como respuesta para marcarlo. Así es como trabajo habitualmente. – midhunhk

4

Este es el más simple y el método correcto. Todo lo que tienes que hacer es agregar este código después de initComponents();

getContentPane().setBackground(new java.awt.Color(204, 166, 166)); 

Ese es un ejemplo de color RGB, puede reemplazarlo con el color que desee. Si no conoce los códigos de colores RGB, busque en Internet ... hay muchos sitios que ofrecen colores personalizados como este.

0
public nameOfTheClass() { 

final Container c = this.getContentPane(); 

    public void actionPerformed(ActionEvent e) { 
    c.setBackground(Color.white); 
    } 
} 
+0

En general, las respuestas son mucho más útiles si incluyen una explicación de lo que el código está destinado a hacer, y por qué eso resuelve el problema sin introducir otros. –

+0

Respondí concretamente, con el código que resuelve el problema que tiene la persona con la pregunta. En ningún momento agrega otro problema como dices. – Learning

Cuestiones relacionadas