使 JButton 不可见,但可点击?

Posted

技术标签:

【中文标题】使 JButton 不可见,但可点击?【英文标题】:Making a JButton invisible, but clickable? 【发布时间】:2011-08-04 23:34:29 【问题描述】:

如何在java中制作一个不可见但可点击的JButton?

button.setVisible(false); 

使按钮不可见,但不可点击,有什么方法可以使其不可见,但可点击?

我试过了:

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

但这也没有用。 我想这样做是因为我想要一个带有图像的按钮,如果我将不可见的 JButton 放在图像上,当您单击图像或不可见的按钮时,该按钮会做出响应。

【问题讨论】:

帮帮我,学习 Java 吧?我只是不想创建一个隐形按钮,就这么简单。 哇,今天大家都觉得有点苛刻了吗?让我们都尊重。 如果你想构建一个复活节彩蛋,点击一个小但不可见的按钮会弹出一个游戏,你必须用一对带静电的黄瓜把猫赶到一个盒子里?放轻松,这是一个有效的问题。 @Town:我认为有一个功能:new JInvisibleStaticCucumberBoxCatButton() @Jeff B - 措辞不好,这是一个类:P 【参考方案1】:

我认为你的意思是透明的,而不是不可见的。

这将使可点击的按钮不“可见”,即透明:

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

这回答了您提出的问题,但如果您的目的是使图像可点击,那么也有更好的方法:

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

【讨论】:

是的,这正是我想要的!谢谢! 是的,它说我必须等待 1 分钟。 哦,我还有一个小问题,如何更改 JButton 的边框颜色? @Stan - 看看setBorder 方法:)【参考方案2】:

好吧,没有意义,因为没有意义,所以没有标准的方法可以做到这一点,但是可以覆盖 JButton 的paint方法并且什么都不做:

class InvisibleButton extends JButton 

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

试试这个。

【讨论】:

以上是关于使 JButton 不可见,但可点击?的主要内容,如果未能解决你的问题,请参考以下文章

ue4的按钮怎么执行点击事件

android中点击button使layout不可见,再次点击可见

如何使用 C# 中的 System.Xml.Serialization 使对象不可变但可序列化?

更改可见性时,JButton 大小设置为默认大小

JButton 仅在可见性设置为 True-Java 时有效

在单击按钮时创建的项目在 JFrame 中不可见