有没有办法清除JFrame的背景色或至少将其更改回默认颜色?
更新:谢谢你的回答,但是看起来我好像意外地得到了我想要的答案。我刚拍了一帧。getContentPane()。setBackground(null)将其恢复为默认背景。我在看了评论后想了想,所以如果没有你的帮助,我不可能做到这一点。再次感谢。
JFrame
是一个顶级容器,因此我认为您指的是其内容窗格的背景颜色,默认情况下,该窗格是JPanel
。
默认背景色取决于外观,可以通过classjavax获得。摆动UIManager
。
下面是一个非常基本的应用程序演示。我明确地将内容窗格背景设置为黄色,单击按钮后,背景恢复为默认值。
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.plaf.ColorUIResource;
public class FrameTst {
private static ColorUIResource bg;
private JFrame frame;
private void createAndDisplayGui() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel contentPane = (JPanel) frame.getContentPane();
contentPane.setBackground(Color.yellow);
contentPane.setBorder(BorderFactory.createLineBorder(Color.red, 2));
contentPane.setLayout(new FlowLayout(FlowLayout.LEADING));
JButton button = new JButton("Button");
button.addActionListener(event -> contentPane.setBackground(bg));
contentPane.add(button);
frame.setSize(450, 350);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
bg = (ColorUIResource) UIManager.get("Panel.background");
EventQueue.invokeLater(() -> new FrameTst().createAndDisplayGui());
}
}
Swing在内部使用一个叫做ColorUIResources的概念,通常意味着框架定义和使用的颜色。
我学到的一个重要思想是,如果颜色不是ColorUIResource的特定实例,Swing将不会更改组件的颜色。
如果你想恢复JFrame的颜色,你可以做类似的事情
frame.setBackground(new ColorUIResource(Color.white));
并恢复原来的颜色您的组件您可以一个单一的调用
SwingUtilities.updateComponentTreeUI(window)
我无法让JPanel改变颜色。我也不能让JFrame改变颜色。我在网上查过...我还有一个程序,它有几乎相同的代码来设置JPanel和JFrame。我就是不能让它起作用。 下面是我的主要方法: 编辑:稍后在我的主要方法中有 下面是JPanel的构造函数: 背景颜色保持默认灰色。
我在JScrollpane中显示了一个JTable。JTable在其网格中只显示几行信息。网格下面到JPanel底部的空间,包含JScrollpane(它又包含JTable),为纯灰。我想把那个颜色改成白色。我尝试将JTable的背景色设置为白色,[使用setBackground(color,white)]方法,但没有成功。 谁能告诉我用哪种方法把灰色变成白色?
我试图在JFrame中更改JPanel的背景。JFrame由JPanels组成,很像一个网格。我试图改变JFrame中的一个随机JPanel,并查看循环中每一次的颜色变化。 如果取消对panel.add(individualPanel)行的注释,这将显示颜色变化,但它会不断向JFrame添加越来越多的JPanels。但是,注释这一行可以让我更改颜色,但不会显示JFrame中的任何更改。我试着修改了
我有一个带有半径和笔划的CardView,但当我以编程方式更改CardView背景时,半径和笔划将丢失,我希望新颜色保留在笔划内。 这是我的cardview xml 这里是我换颜色的地方:
我正在使用RangeSeekBar为3种情况设置一些值(即绿色=OK,琥珀色=警告,红色=撤离)...我正在使用xml绘图来设置背景 我知道我可以通过编程更改渐变,但如何缩小起始颜色并增加结束颜色?有人能解决这个问题吗? 谢谢
问题内容: 有什么方法可以更改RibbonApplicationMenuEntryPrimary(Flamingo)的背景颜色吗? 我看了看它的javadoc,但找不到方法。 问题答案: 1)请注意,我已检查API;从开始,有很多导入和扩展,它们来自许多不同的方法(这里是我尝试覆盖MetalButtonUI的尝试)。 2)也许更改内置颜色主题会很容易,但是我不建议这样做。 3)我不是Flaming