Achtergrondkleur instellen voor een JFrame

Hoe stel je de achtergrondkleur in voor een JFrame?


Antwoord 1, autoriteit 100%

Haal het inhoudspaneel voor het frame op en gebruik de setBackground()methode overgenomen van Componentom de kleur te wijzigen.

Voorbeeld:

myJFrame.getContentPane().setBackground( desiredColor );

Antwoord 2, autoriteit 46%

De achtergrondkleur voor JFrame instellen:

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

Antwoord 3, autoriteit 15%

met:

setBackground(Color.red);

werkt niet goed.

gebruik

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

of

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

Antwoord 4, autoriteit 6%

Probeer dit om de achtergrondkleur voor het JFrame in te stellen:

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

Antwoord 5, autoriteit 5%

Hallo daar had ik hetzelfde probleem en na vele pogingen ontdekte ik dat het probleem is dat je een grafisch objectnodig hebt om te kunnen tekenen, paint(setBackgroundColor).

Mijn code gaat meestal als volgt:

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));
    }
}

Het ontbrekende deel van bijna alle andere antwoorden is waar de code moet worden geplaatst.
Dan weet je nu dat het in paint(Graphics G)

gaat


Antwoord 6, autoriteit 5%

Dit is de eenvoudigste en de juiste methode. Het enige wat u hoeft te doen is deze code toe te voegen na initComponents();

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

Dat is een voorbeeld RGB-kleur, die kun je vervangen door je gewenste kleur. Als u de codes van RGB-kleuren niet kent, zoek dan op internet… er zijn veel sites die aangepaste kleuren zoals deze bieden.


Antwoord 7, autoriteit 2%

U kunt een container als volgt gebruiken:

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

Je moet natuurlijk java.awt.Colorimporteren voor de rodekleurconstante.


Antwoord 8, autoriteit 2%

Hier is een andere methode:

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

Ik gebruik netbeans ide. Voor mij werkte JFrame.getContentPane()niet. Ik gebruikte JFrame.getContentPane()‘s klasse-equivalent this.getContentPane.


Antwoord 9

Ik had ook problemen met het wijzigen van de JFrame-achtergrond en de bovenstaande reacties losten het niet helemaal op. Ik gebruik Eclipse. Het toevoegen van een lay-out loste het probleem op.

public class SampleProgram extends JFrame {
    public SampleProgram() {
        setSize(400,400);
        setTitle("Sample");
        getContentPane().setLayout(new FlowLayout());//specify a layout manager
        getContentPane().setBackground(Color.red);
        setVisible(true);
}

Antwoord 10

je kunt de verfmethode van JFrame overschrijven en die dan als volgt vullen met je favoriete kleur:

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

Antwoord 11

U kunt dit codeblok gebruiken voor de achtergrondkleur van JFrame.

   JFrame frame = new JFrame("Frame BG color");
    frame.setLayout(null);
    frame.setSize(1000, 650);
    frame.getContentPane().setBackground(new Color(5, 65, 90));
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);
    frame.setVisible(true);

Antwoord 12

public nameOfTheClass()  {
final Container c = this.getContentPane();
  public void actionPerformed(ActionEvent e) {
    c.setBackground(Color.white); 
  }
}

Antwoord 13

Een thread uit stilstand herleven.

In 2018 werkt deze oplossing voor Swing/JFrame in NetBeans (zou in elke IDE moeten werken :):

this.getContentPane().setBackground(Color.GREEN);


Antwoord 14

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);
        }
}

Antwoord 15

Waarschijnlijk is de EENVOUDIGSTE methode deze:

super.setBackground(Color.CYAN);

Je moet JFrame uitbreiden in de klas voordat je dit doet!

Other episodes