如何在Java中设置JButton的背景颜色?

2023-11-27

我正在开发一个 Java 桌面应用程序。里面我有4个JButtons on a JPanel。现在我希望每当单击一个按钮时,其背景颜色就会更改为其他颜色(例如橙色),以表示它已被单击,并且所有其他 3 个按钮的背景颜色重置为默认颜色(如果其中任何一个按钮有橙色)背景颜色)。

因此,一次只有一个按钮可以具有橙色。

我当前应用的方法是在xxxActionPerformed()JButton按钮1的方法

button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);

其余三个按钮也类似。

现在实际上,我不希望背景颜色为灰色(对于未单击的按钮)。相反,我想要默认的背景颜色,以便背景颜色根据最终用户平台的外观调整自身以适应 GUI 的外观。

Q1.如何获得默认背景颜色?

Q2。这是执行此操作的正确方法吗?或者是否有任何其他机制可以将所有四个按钮分组到一个按钮组中,以便一次只有一个按钮可以具有指定的属性(如单选按钮)?


  1. 只需使用null使用默认颜色:

    button1.setBackground(Color.ORANGE);
    button2.setBackground(null);
    ...
    
  2. 考虑将 JToggleButtons 与 ButtonGroup 一起使用,设置按钮的 Icon 和 PressedIcon。无需更改背景颜色。

    button1 = new JToggleButton(new ImageIcon("0.jpg"));
    button1.setSelectedIcon(new ImageIcon("1.jpg"));
    button2 = new JToggleButton(new ImageIcon("0.jpg"));
    button2.setSelectedIcon(new ImageIcon("2.jpg"));
    ...
    ButtonGroup group = new ButtonGroup();
    group.add(button1);
    group.add(button2);
    ...
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java中设置JButton的背景颜色? 的相关文章

  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 用不同的颜色填充水平线上方和下方的区域[重复]

    这个问题在这里已经有答案了 Aim 我正在尝试填充 R 中 ggplot 生成的图中两条线之间的区域 我想用与水平线下方不同的颜色填充水平线上方的线之间的所有内容 我成功地用单一颜色填充了两条线之间的所有内容 但是 我无法用两种不同的颜色区
  • 通过 PHP 使用 R

    我对 R 比较陌生 对 Linux Ubuntu 命令行也很陌生 我正在尝试用 PHP 编写一个页面 其中包含我想在 R 中执行的命令 然后将结果传回以便能够使用它们 我尝试了下面代码的变体 但我只得到 R 欢迎消息作为我的输出 当我在命令
  • 完成后如何杀死 doMC 工作人员?

    doMC 的文档似乎非常稀疏 仅列出了 doMC package 和 registerDoMC 我遇到的问题是我将通过 doMC foreach 生成几个工作人员 但是当工作完成后 他们只是坐在那里占用内存 我可以去寻找他们的进程ID 但我
  • 如何配置 Play! 2.4.2 HTTPS 密钥库?

    我是 Play Framework 的新手 只是尝试在 Java 8 上首次使用 2 4 2 来使用 HTTPS 我可以让它使用默认密钥库 但不能使用我自己的密钥库 我配置了working默认密钥库位于build sbt javaOptio
  • Android 版 Google 地图 V2 上圆圈上的 LatLng 点

    I need to store all the LatLng points of circle drawn on google map like 我有圆和半径 以米为单位 如何得到那个 我尝试使用代码 private ArrayList
  • 重置数据表中的自动增量

    我填充一个DataSet with a DataAdapter to a SQL CE数据库 数据显示在DataGrid它绑定到 DataSet 的 DataTable 我有一个自动递增 ID 字段 或在 SQLCE 中 称为PRIMARY
  • UITableViewCells 中的图像加载错误

    我正在开发一个应用程序 我想在带有自定义单元格的 UITableView 中显示几乎与屏幕大小一样大的图像 图像加载良好 有点慢 但它们加载了 但是当我在 TableView 中滚动时 它们出现在错误的单元格中 例如 单元格 5 中的 Im
  • ASP.Net MVC 将标签值回发到您的控制器

    使用 EditorTemplate 时 如果我希望模型上的值显示在屏幕上 同时又发布回控制器 我应该使用什么助手 IE 如果我使用 TextBoxFor Html TextBoxFor model gt model RoomTypeName
  • 如何使用指针从不同的函数访问局部变量?

    我可以访问不同函数中的局部变量吗 如果是这样 怎么办 void replaceNumberAndPrint int array 3 printf i n array 1 printf i n array 1 int getArray int
  • Oct2Py 仅返回第一个输出参数

    我使用 Oct2Py 是为了在我的 Python 代码中使用一些 M 文件 假设我有这个简单的 Matlab 函数 function a b toto c a c b c 1 end 如果我在 Octave 中调用它 会发生什么显然是 gt
  • 当没有任何变化时如何强制更新 MySQL 记录

    我的数据库表有一列定义要使用ON UPDATE CURRENT TIMESTAMP 字段 last access 类型 时间戳 整理 属性 更新 CURRENT TIMESTAMP Null No 默认值 CURRENT TIMESTAMP
  • 如何使用 Python Mock 引发异常 - 但将 Errno 设置为给定值

    给定以下 Python 代码 elif request method DELETE try os remove full file return jsonify results purged s full file except OSErr
  • ES6 对象字面量中的简洁方法和非简洁方法

    let module add function a b return parseInt a parseInt b sub a b return parseInt a parseInt b 使用这两种方法的根本区别是什么concise方法语法
  • 使用 Ruby gem 部署 shell 脚本并安装在 bin 目录中

    我希望将 shell 脚本与属于该包的其他 Ruby 程序一起放置在我的 gem 的 bin 目录中 我希望将此 shell 脚本按原样安装在 bin 目录中 即没有包装器 红宝石有可能做到这一点吗 如果没有其他可能的话 我会对安装后挂钩感
  • 有没有办法将EntityManager注入到服务中

    使用时Symfony 3 3 我声明这样的服务 class TheService implements ContainerAwareInterface use ContainerAwareTrait 在我需要 EntityManager 的
  • Spring Batch corePoolSize VSthrottle-limit

    我想知道两者之间的区别核心池大小 and 油门限制作为定义多线程配置的 Spring Batch 属性 感谢这篇文章 我了解了 corePoolSize 和 maxPoolSize 之间的区别 Spring ThreadPoolTask E
  • RMI 的替代方案

    我有一个小型 Java SE 应用程序 它实际上是一个位于数据库之上的胖客户端 为了进一步提高我的 Java 技能 我决定用它制作一个客户端 服务器应用程序 服务器应用程序与数据库通信并处理各种冗长的操作 而客户端应用程序仅接收结果 主要是
  • 如何在 OCaml 中使用断言?

    我正在尝试学习 OCaml 但在断言语句方面遇到了问题 在解释器中我可以使用它 Zameers MacBook Air zmanji ocaml OCaml version 4 01 0 let x 1 val x int 1 assert
  • 选中时更改标签颜色单选

    我在检查单选按钮后如何将单选按钮的标签文本颜色更改为蓝色时遇到问题 我已经遵循了许多示例代码 但它不起作用 下面是我的html代码 div class input group div
  • 如何在Java中设置JButton的背景颜色?

    我正在开发一个 Java 桌面应用程序 里面我有4个JButtons on a JPanel 现在我希望每当单击一个按钮时 其背景颜色就会更改为其他颜色 例如橙色 以表示它已被单击 并且所有其他 3 个按钮的背景颜色重置为默认颜色 如果其中