因此,我正在编写一个程序,在这个程序中,我最终希望一个按钮在按下时改变颜色。到目前为止,我的困境是:
-尽管切换了setOpaque()和setContentAreaFilled()的真/假,但我无法获取当前设置为显示背景色的JButton。在尝试添加ActionListener之前,我希望能够做到这一点。
-我想用类似于JToggleButton()的东西来改变颜色,但是我想用背景而不是图标来改变颜色。
我正在使用mac,我想知道它是否与默认按钮设置有关,但我不知道如何更改/覆盖这些。
我会发布一个截图,但不幸的是我的声誉还不够高。
下面是我得到的一个例子:
import java.awt.*;
import javax.swing.*;
public class Example extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
JFrame main = new JFrame("Example");
JPanel content = new JPanel();
JButton button = new JButton("Press");
button.setBackground(Color.orange);
button.setContentAreaFilled(false);
button.setOpaque(true);
content.add(button);
main.setContentPane(content);
main.setVisible(true);
main.setSize(40,60);
main.setLocation(500, 200);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
对于那些(可能在windows或linux平台上)看不到我在说什么的人来说,按钮会出现,按钮后面的布局(不是边框或JPanel,只是按钮周围的一个小矩形)会根据指定的内容着色。
提前感谢您抽出时间。
另外,我知道在ActionListener中,getSource()方法将返回与按钮关联的文本。是否有任何方法可以使用类似的东西从ActionListener内部更改按钮的颜色,或者这个想法只是一种冗余,可以用更简单的方式完成。
非常感谢。
我想那是按钮。set不透明(true)
是不必要的。
删除它,或将其更改为:
button.setOpaque(false);
并查看发生了什么
我最终希望JButton在按下时改变颜色
这里有两种不同的方式(注意JButton在UIManager中有一个颜色数组)
>
覆盖ButtonModel中的事件(实现ChangeListener或相同的方法,例如在JButtons API中进行压缩、设置),加速器对鼠标和按键有效(选择或聚焦窗口)
覆盖基本按钮NUI(用于实际项目)
我正在使用mac,我想知道它是否与默认按钮设置有关,但我不知道如何更改/覆盖这些。
我想你想在外观和感觉上做点什么。尝试
button.setUI(new MetalButtonUI());
或者为按钮尝试其他支持背景色的UI。
背景,就是衬在文字和前景后面显示的东西。KAG 中(默认设定)的是读入 640×480 大小的背景图片。 首先,将想要显示的 640×480 的图片放进 bgimage 文件夹中。把图片命名为 bg0.jpg 。KAG 的 LZH 档里并没有包含背景图片,请自己准备一张吧(^^) 接着,把在 显示文字相关 里所使用的剧本档(first.ks)内容修改成以下这样。 [imagestorage=
问题内容: 这是一个非常简单的程序,我已尽力而为,但JPanel并未提供背景图片。我只希望面板上有一个简单的背景图像。 这是我的代码: 提前致谢 问题答案: 更换 与
问题内容: 可以说我创建了一个带有jbutton的2d瓦片地图,然后在地图顶部创建了单位,当单位(也是jbutton)位于瓦片顶部时,有一种方法可以显示地图背景,因为现在单元的背景只是被涂成红色,是否可以通过jbuttons而不是jbuttons来做到这一点? 问题答案: 可能,是的,建议这样做,嗯,可能不是。 我相信您将需要将标题按钮的布局更改为可以控制的内容(这将取决于您的视觉要求)。 我个人
问题内容: 我有一个Swing JButton,我的项目也使用了以下代码: 现在,当尝试使用一个按钮更改背景时,它不会变成红色,只有边框变成红色。 在仍用于其余组件/项目时,如何将背景变为红色? 问题答案: 看一下错误4880747:XP L&F:REGRESSION:JButton上的setBackground设置Windows XP中的边框颜色 。评估部分指出: 更改按钮的外观总是会导致与当前
我如何设置一个按钮的活动背景颜色在swing,Java?Active background color是单击按钮时按钮背景的颜色。
我正在开发一个swing应用程序(让我们忽略为什么)。 我需要做一个自定义设计的滚动条。到目前为止还不错,我实现了我的ScrollBarUI后代-我有自定义按钮,自定义拇指,自定义轨道...除了按钮周围的区域-我在那里添加了一些填充,我想把我所有的滚动条包装成一个圆角矩形。 由于我在ScrollBarUI中没有找到这样做的方法,我决定扩展JScrollPane(扩展那里使用的ScrollBar,这