我无法让JPanel改变颜色。我也不能让JFrame改变颜色。我在网上查过...我还有一个程序,它有几乎相同的代码来设置JPanel和JFrame。我就是不能让它起作用。
下面是我的主要方法:
public static void main(String[] args){
JFrame frame = new JFrame("title");
frame.getContentPane().setBackground(Color.WHITE);
Drawing drawing = new Drawing(2);
drawing.setBackground(Color.CYAN);
frame.add(drawing);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
...
编辑:稍后在我的主要方法中有
frame.setLocationRelativeTo(null);
frame.setVisible(true);
下面是JPanel的构造函数:
public class Drawing extends JPanel {
// instance variables
public Drawing(int n){
setOpaque(true);
setPreferredSize(new Dimension(300, 300));
setBackground(Color.PINK);
...
背景颜色保持默认灰色。
我使用eclipse创建一个快速的Windows builders应用程序以及设置颜色都没有问题。
我确实注意到的一点是,您执行frame.add(drawing)
而不是frame.getContentPane().add(drawing)
。
您也从未使用frame.setVisible(true)
设置框架可见。
下面是我使用的代码:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainWindow window = new MainWindow();
window.frame.setVisible(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainWindow() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.getContentPane().setBackground(Color.GREEN);
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBackground(Color.CYAN);
panel.setBounds(10, 171, 128, 81);
frame.getContentPane().add(panel);
}
编辑:添加代码工作的图片说明
我试图在JFrame中更改JPanel的背景。JFrame由JPanels组成,很像一个网格。我试图改变JFrame中的一个随机JPanel,并查看循环中每一次的颜色变化。 如果取消对panel.add(individualPanel)行的注释,这将显示颜色变化,但它会不断向JFrame添加越来越多的JPanels。但是,注释这一行可以让我更改颜色,但不会显示JFrame中的任何更改。我试着修改了
有没有办法清除JFrame的背景色或至少将其更改回默认颜色? 更新:谢谢你的回答,但是看起来我好像意外地得到了我想要的答案。我刚拍了一帧。getContentPane()。setBackground(null)将其恢复为默认背景。我在看了评论后想了想,所以如果没有你的帮助,我不可能做到这一点。再次感谢。
我有一个java作业,其中我需要更改GUI的背景颜色,这取决于用户选择的列出不同颜色的单选按钮。我的程序有一个JFrame来保存所有东西,然后在这个框架中有3个JPanels(1个指令区,1个单选按钮网格,1个结果文本字段)。 My action listener当前正在使用以下语句设置背景颜色:getContentPane().SetBackground(color.Decode(ColorMa
慢慢地,jpanel的背景色将变得比以前更不透明。值得注意的是,我正在使用jpanel的挫折方法。以下是一些您可能想要查看的代码链接。 自定义GUI按钮 它所在的Gui--请看第158行。
---------我为我的ASP.NET核心标识项目实现了引导SB管理模板。现在我把它个性化了。问题是我不能改变模板的背景颜色,也不能改变导航菜单的颜色。当我检查元素时,颜色会发生变化,但当我重写或删除style.css文件上的代码时,它就不起作用了。这里是我的登录页面代码。--------- @model LoginModel }
因此,我尝试使用getContentPane().setBackground(color.white)并尝试将table和scrollpane设置为白色。 这是唯一一个我不能改变颜色的框架,它是在另一个类中创建的- 通过这样做,我得到了另一个面板来成功地改变颜色