首页 > 解决方案 > 是否可以添加一个 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);

标签: java

解决方案


不,AJLabel不能有 child JLabel(或者实际上是一个有多个孩子的数组)。您需要查看一个布局管理器,它允许您JLabel连续布局多个 s。

您通常会创建一个JPanel,给它一个FlowLayout(默认值)并将所有JLabels 添加到面板中。另一种方法是使用“真实”进度条而不是尝试 DIY。


推荐阅读