如何使JButton不可见,但仍可点击?

7
如何在Java中使JButton不可见,但仍可点击?
button.setVisible(false); 

使按钮不可见,但不能被点击,有没有一种方法可以使它不可见,但仍然可以被点击?

我尝试过:

button.setVisible(false);
button.setEnabled(true);

但是那也不起作用。 我想做这件事,是因为我想要一个带有图片的按钮,如果我将不可见的JButton放在图片上方,则在单击图像或不可见按钮时,按钮会响应。


1
帮我学习Java吧?我只想创建一个不可见的按钮,就这么简单。 - Stan
9
今天大家感觉有点严厉?让我们都彼此尊重。 - Jeff B
12
如果你想在一个小而隐蔽的按钮上设置复活节彩蛋,点击后会弹出一个游戏,让你使用一对静电充电的黄瓜将猫赶进一个箱子里,该怎么办呢?别担心,这是一个合理的问题。 - Town
2
@Town:我认为有一个函数可以做到这一点:new JInvisibleStaticCucumberBoxCatButton() - Jeff B
1
@Jeff B - 措辞不当,这是一个类:P - Petar Minchev
显示剩余6条评论
2个回答

23

我认为你是指透明而非不可见。

以下代码可以实现一个可点击的按钮,但是它是“不可见”的,也就是透明的:

button.setOpaque(false);
button.setContentAreaFilled(false);
button.setBorderPainted(false);

这回答了你提出的问题,但如果你想使图像可点击,也有更好的方法:

ImageIcon myImage = new ImageIcon("images/myImage.jpg");
JButton button = new JButton(myImage);

是的,它说我必须等待1分钟。 - Stan
哦,我还有一个小问题,如何更改JButton的边框颜色? - Stan
1
@Stan - 看一下setBorder方法 :) - Petar Minchev

0

嗯,既然没有意义,那么就没有标准的方法来做这件事,但是可以重写JButton的paint方法并什么也不做,例如:

class InvisibleButton extends JButton {

    @Override
    public void paint(Graphics g){
          // Do nothing here
    }
}

试着玩一下这个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接