gpt4 book ai didi

java - JButton 不会显示背景颜色

转载 作者:行者123 更新时间:2023-11-30 07:01:29 31 4
gpt4 key购买 nike

所以我正在编写一个程序,我最终希望 JButton 在按下时改变颜色。到目前为止,这是我的困境:

-尽管切换了 setOpaque() 和 setContentAreaFilled() 的 true/false,但我无法获取当前设置为显示背景颜色的 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 内部更改按钮的颜色,或者这个想法只是对可以以更简单的方式完成的事情的冗余。

非常感谢。

最佳答案

我想你想尝试一下外观和感觉。尝试

button.setUI(new MetalButtonUI());

或为按钮尝试一些其他支持背景颜色的 UI。

关于java - JButton 不会显示背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29781275/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com