gpt4 book ai didi

java - JButton 子类在单击/透明错误之前不显示按钮

转载 作者:行者123 更新时间:2023-12-02 08:14:13 28 4
gpt4 key购买 nike

我的程序遇到了另一个问题。我创建了几个 JButton 子类来专门执行我需要它们执行的操作。问题是按钮不会显示,直到我单击它们应该在的位置或者将鼠标悬停在它们上方(当我将 setRolloverEnabled() 设置为 true 时)。我最初将它们全部设置为 setRolloverEnabled() 为 true。但我明白,当我将鼠标悬停在它们上方时,它有一个丑陋的蓝色按钮轮廓,我一点也不喜欢。那么有没有什么方法可以让它们可见,而不必将鼠标悬停在它们上方,或者不必单击它们?

我的 JFrame 有一个背景(我对 JPanel 进行了子类化并覆盖了paintComponent() 方法),允许 JFrame 保持其作为容器的角色)。同样在 Adob​​e Photoshop 中,我设计了按钮,在外边缘有一些透明度,我将文件另存为 .png,这样透明度就会保留,但是当按钮放置在框架中时,仍然有一个难看的蓝色轮廓它应该是透明的。任何帮助。

如有任何建议,我们将不胜感激。下面是我的一个 Button 类的代码。

public class Button extends javax.swing.JButton {  
//This Button class is not the AWT Button object.
//It is a custom class designed by me.

public Button(ImageIcon normal){

setRolloverEnabled(false);
setVisible(true);
setIcon(normal);
setSize(normal.getIconWidth(),normal.getIconHeight());

}

public Button(ImageIcon normal, ImageIcon rollover){

this(normal);
setRolloverIcon(rollover);

}

public Button(ImageIcon normal, ImageIcon rollover,ImageIcon selected){

this(normal,rollover);
setSelectedIcon(selected);

}

}

最佳答案

您很可能没有在事件调度线程中创建 GUI。 Swing 绘画在设计上是单线程的。如果您尝试绘制组件(即使您不是故意这样做),结果也会有所不同。有详细记录的方法可以正确指示 jvm 绘制组件,包括 SwingWorkerSwingUtilities.invokeLater(Runnable)。看看this tutorial获取更多信息。

关于java - JButton 子类在单击/透明错误之前不显示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755793/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com