2011-06-07 95 views
1

在JPanel中我有这样几个创建的JLabel:的JLabel不透明和Alpha

... 
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)),取消选中 - > setBorder(null)。当我检查并取消选中jLabel时,发生这样的事情:

enter image description here

如何从标签摆脱这些复选框

编辑:?在标签上的复选框只有图片,没有真正的复选框也许这幅画将帮助: enter image description here

此方用红边框现在由chechBox检查在JOptionPane上标记。左边的这个(上面有checkBox图片)被更早的检查过了。我不知道如何解释这一点,只是在点击JOptionPane上的复选框标记后发生。点击后,我在标签上设置红色边框或设置边框空白,仅此而已。

+2

SSCCE会很好。我不完全明白这个问题。 – jzd 2011-06-07 17:28:03

+0

多一点的代码在这里会有所帮助。 – Paul 2011-06-07 17:28:16

+0

顺便说一句,为什么使用 - >运算符?这是Java而不是C++ – ignis 2011-06-07 19:03:05

回答

1

这些复选框将不会“精确地出现”在那里。你是否在标签上的某处绘制它们?请彻底检查!

稍微多一点的代码会很有用。

+0

标签上的复选框只是真正的checkBox的图片。它们出现在我检查并取消选中jPanel中的复选框后。我不画他们。 – czy 2011-06-07 18:43:53

+0

请给我们展示更多代码!我不关心颜色的东西和一切。准确地向我们展示这些元素是如何在JPanel等中展开的。 – 2011-06-08 13:19:24

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());