您如何设置 JFrame 的背景颜色?
15 回答
检索框架的内容窗格并使用从Component继承的setBackground()方法来更改颜色。
例子:
myJFrame.getContentPane().setBackground( desiredColor );
为 JFrame 设置背景颜色:
getContentPane().setBackground(Color.YELLOW); //Whatever color
使用:
setBackground(Color.red);
不能正常工作。
利用
Container c = JFrame.getContentPane();
c.setBackground(Color.red);
或者
myJFrame.getContentPane().setBackground( Color.red );
要为 JFrame 设置背景颜色,请尝试以下操作:
this.getContentPane().setBackground(Color.white);
您好,我确实遇到了同样的问题,经过多次尝试,我发现问题是您需要一个图形对象才能绘制,paint(setBackgroundColor)。
我的代码通常是这样的:
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));
}
}
几乎所有其他答案的缺失部分是放置代码的位置。那么现在你知道它进入了油漆(图形 G)
这是最简单和正确的方法。您所要做的就是在 initComponents(); 之后添加此代码。
getContentPane().setBackground(new java.awt.Color(204, 166, 166));
这是一个示例 RGB 颜色,您可以将其替换为您想要的颜色。如果您不知道RGB颜色的代码,请在互联网上搜索......有很多网站提供这样的自定义颜色。
您可以像这样使用容器:
Container c = JFrame.getContentPane();
c.setBackground(Color.red);
您当然必须导入java.awt.Color
红色常数。
这是另一种方法:
private void RenkMouseClicked(java.awt.event.MouseEvent evt) {
renk = JColorChooser.showDialog(null, "Select the background color",
renk);
Container a = this.getContentPane();
a.setBackground(renk);
}
我正在使用netbeans ide。对我来说,JFrame.getContentPane()
没有跑。我使用了JFrame.getContentPane()
's 类等价物this.getContentPane
。
我在更改 JFrame 背景时也遇到了麻烦,上述响应并没有完全解决它。我正在使用 Eclipse。添加布局解决了这个问题。
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);
}
你可以覆盖 JFrame 的paint方法,然后用你喜欢的颜色填充它,如下所示:
@Override
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
}
您可以将此代码块用于 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);
从静止中复活一根线。
在 2018 年,此解决方案适用于 NetBeans 中的 Swing/JFrame(应该适用于任何 IDE :):
this.getContentPane().setBackground(Color.GREEN);
public nameOfTheClass() {
final Container c = this.getContentPane();
public void actionPerformed(ActionEvent e) {
c.setBackground(Color.white);
}
}
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);
}
}
可能最简单的方法是这样的:
super.setBackground(Color.CYAN);
在执行此操作之前,您必须在类中扩展 JFrame!