java - 是否可以添加一个 JLabel 数组,每个元素在 JLabel 内都有一个背景颜色
问题描述
这是我的示例代码,我想将 hpBar 放在 hpDetails 中,这样当播放器损坏/修复时,更改状态变得容易且更有效。但是当我把它放在 hpBar 里面时,它不会显示 hpBar 它只是离开了空间。我真的需要知道它是否可以做到这一点。
this.hpDetails = new JLabel(" ");
this.hpDetails.setOpaque(true);
this.hpBar=new JLabel[5];
for(int i=0;i<5;i++){
this.hpBar[i] = new JLabel(" ");
this.hpBar[i].setOpaque(true);
this.hpBar[i].setBackground(Color.RED);
this.hpDetails.setText(hpDetails.getText() + this.hpBar[i]);
}
this.add(this.hpDetails);
解决方案
不,AJLabel
不能有 child JLabel
(或者实际上是一个有多个孩子的数组)。您需要查看一个布局管理器,它允许您JLabel
连续布局多个 s。
您通常会创建一个JPanel
,给它一个FlowLayout
(默认值)并将所有JLabel
s 添加到面板中。另一种方法是使用“真实”进度条而不是尝试 DIY。
推荐阅读
- haskell - 为州实施表演
- python - 我正在尝试在被跟踪的对象上绘制一个 3D 立方体(使用 ORB 和对象的单应性)-opencv Python
- laravel - 如何在我正在进行的项目中添加模板。(依赖冲突)
- php - 正则表达式将数据属性添加到所有图像链接
- docker - Jenkins Agent 无法运行程序“docker”:错误=2,没有这样的文件或目录
- pixel - 查找圆上的所有像素
- javascript - 将数据从 API 推送到数组
- node.js - 使用 fs.createReadStream 通过 POST 发送文件不会发送文件
- java - TransformerException:无效的 XML 字符(Unicode:0x4)
- javascript - $location.path 没有重定向到 Angular JS 中的页面