当前位置: 首页 > 面试题库 >

更改JButton的背景

郗缪文
2023-03-14
问题内容

我有一个Swing JButton,我的项目也使用了以下代码:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

现在,当尝试使用一个按钮更改背景时,btnNewButton.setBackground(Color.RED);它不会变成红色,只有边框变成红色。

在仍UIManager.getSystemLookAndFeelClassName()用于其余组件/项目时,如何将背景变为红色?


问题答案:

看一下错误4880747:XP L&F:REGRESSION:JButton上的setBackground设置Windows
XP中的边框颜色
。评估部分指出:

更改按钮的外观总是会导致与当前的L&F实现冲突。Windows L&F for
Swing尝试尽可能接近本机显示。在XP上,我们将内置位图资源用于按钮。就像在本机API中一样,它们不能被着色。

您应该在按钮上调用setContentAreaFilled(false)以避免L&F绘制其装饰。这样做的副作用是按钮的opaque属性设置为false,因此您需要在该调用之后调用setOpaque(true)。

这不是错误,将被关闭。

如前所述,setContentAreaFilled(false)setOpaque(true)可以解决问题,但是按钮看起来会有所不同。

如果麻烦值得的话,您可以创建自己的ButtonUI。这是@mKorbel的一个很好的示例,您可能会发现它很有用。



 类似资料:
  • 我使用的是从JButton bui扩展而来的类KButton,我添加了一些代码,使它更漂亮,如更改字体,设置圆角边框,使用图形和Graphics2D更改背景。然而,这是不工作时,我想添加代码,使其改变颜色时,移动!我的代码在这里 而且似乎不起作用!

  • 我到处寻找答案,但一无所获。我不知道是否还有人以前有过这个问题,但我感谢所有的帮助,谢谢。 我有一个100乘100的标签网格,让我解释一下我是如何创建的。我有一个创建和填充Strings数组的方法。下一个方法创建一个标签数组,然后使用setText()方法将String(从上一个方法创建)添加到标签中。之后的方法获取这些JLabels,并将它们添加到网格布局的J面板中。然后,我将JPanel添加到

  • 问题内容: 可以说我创建了一个带有jbutton的2d瓦片地图,然后在地图顶部创建了单位,当单位(也是jbutton)位于瓦片顶部时,有一种方法可以显示地图背景,因为现在单元的背景只是被涂成红色,是否可以通过jbuttons而不是jbuttons来做到这一点? 问题答案: 可能,是的,建议这样做,嗯,可能不是。 我相信您将需要将标题按钮的布局更改为可以控制的内容(这将取决于您的视觉要求)。 我个人

  • 我添加了一个表,但问题是,面板没有显示其背景色。我试过设置滚动窗格的背景色等,但它不起作用。框架有一个按钮“验证”,单击该按钮时,在其下方显示一个表。在单击之前,表格将显示的部分为纯灰色。我希望整个部分是象牙背景。请帮我诊断这个问题。

  • 我如何设置一个按钮的活动背景颜色在swing,Java?Active background color是单击按钮时按钮背景的颜色。

  • 我试图在基于swing的GUI中更改的背景。我已将该表添加到中。但是,表格中没有单元格的区域不会改变颜色。我尝试更改滚动窗格的背景色和前景色。然而,这也无济于事。我需要编辑JTable的哪个组件来更改白色背景。下面是我代码的一部分。 JTable的代码