JLabel不透明和alpha

时间:2011-06-07 17:24:46

标签: java swing jlabel

在JPanel中,我创建的JLabel很少:

...
Random rand = new Random();
Color col = new Color(rand.nextFloat(),
rand.nextFloat(),
rand.nextFloat(),
rand.nextFloat());
Color playColor= new Color(col.getRed(), col.getGreen(), col.getBlue(), col.getAlpha());
sqr.setOpaque(true);
sqr.setBackground(playColor);
sqr.setLayout(null);
...

当我点击任何JLabel(mouseClicked(MouseEvent e))时,我可以在JOptionPane中获取有关它的信息。在同一个JOptionPane中,我有checkBox来标记所选标签(check-> setBorder(BorderFactory.createLineBorder(Color.red)),取消选中 - > gt; setBorder(null)。当我检查然后取消选中jLabel时,会发生这样的事情。 :

enter image description here

如何从标签中删除这些复选框?

编辑:标签上的checkBoxes只是图片,而不是真正的checkBoxes。也许这张照片会有所帮助: enter image description here

这个带红色边框的方格现在由JOptionPane上的chechBox Mark检查。之前检查了左边的这个(上面有checkBox图片)。我不知道如何解释这个,它只是在我点击JOptionPane上的复选框标记后发生的。点击后我在标签上设置红色边框或设置border null,仅此而已。

2 个答案:

答案 0 :(得分:2)

顺便说一句,(这可能应该是一个评论,但我正在使用代码块的答案)这个..

Color col = new Color(
    rand.nextFloat(),
    rand.nextFloat(),
    rand.nextFloat(),
    rand.nextFloat());
Color playColor= new Color(col.getRed(), col.getGreen(), col.getBlue(), col.getAlpha());

..相当于..

Color playColor = new Color(
    rand.nextFloat(),
    rand.nextFloat(),
    rand.nextFloat(),
    rand.nextFloat());

答案 1 :(得分:1)

这些复选框不会“恰好”出现在那里。你在标签的某处画它们吗?!请仔细检查!

多一点代码会很有用。