java - Swing:将鼠标悬停在半透明 JPanel 上的单选按钮标签上

标签 java swing jpanel jradiobutton translucency

在我的问题中,我有一个不透明的 JPanel 和另一个位于第一个 JPanel 上的半透明(半透明)JPanel。当我在顶部的 JPanel 上添加单选按钮时。问题是每次我在每个单选按钮的标签区域输入鼠标时(以及每次我将鼠标从标签上移开时),它会变得越来越暗。

package trial;

import java.awt.Color;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class Test {

public static void main(String arg[]){
    JFrame rootframe = new JFrame("Test panel");
    rootframe.setSize(800, 550);
    rootframe.setExtendedState(JFrame.MAXIMIZED_BOTH);

    JPanel basePanel = new JPanel(); //fills rootFrame
    basePanel.setOpaque(true);
    basePanel.setBackground(Color.yellow );     

    JPanel panelContainingRadioButtons = new JPanel();//wraps radio buttons
    panelContainingRadioButtons.setOpaque(true);
    panelContainingRadioButtons.setBackground(new Color(0,0,0,100) );

    ButtonGroup buttonGroup1 = new ButtonGroup();

    JRadioButton jRadioButton1 = new JRadioButton();
    jRadioButton1.setText("Text A...............................");
    jRadioButton1.setOpaque(false);
    jRadioButton1.setForeground( Color.white);
    buttonGroup1.add(jRadioButton1);

    JRadioButton jRadioButton2 = new JRadioButton();
    jRadioButton2.setOpaque(false);
    jRadioButton2.setForeground( Color.white);
    buttonGroup1.add(jRadioButton2);
    jRadioButton2.setText("Text B.......................");

    JRadioButton jRadioButton3 = new JRadioButton();
    jRadioButton3.setOpaque(false);
    jRadioButton3.setForeground( Color.white);
    buttonGroup1.add(jRadioButton3);
    jRadioButton3.setText("Text C................................");

    panelContainingRadioButtons.add(jRadioButton1);
    panelContainingRadioButtons.add(jRadioButton2);
    panelContainingRadioButtons.add(jRadioButton3);

    basePanel.add(panelContainingRadioButtons);

    rootframe.add(basePanel);
    rootframe.setVisible(true);

}
}

我相信这不是单选按钮的问题,因为在另一个场合我观察到在相同条件下,如果我将 JLabel 添加到顶部 JPanel,并将监听器添加到顶部面板,以便文本的颜色jLabel 的颜色会在鼠标悬停时发生变化,并在鼠标退出时重置为原始颜色,文本会在不同的地方重绘,如下图所示:-

http://s13.postimage.org/6yn3cw48n/Untitled.png

如有必要,我也会发布该代码。我认为这两种情况都存在相同的问题。

最佳答案

您得到这些绘画瑕疵可能是因为背景使用了透明色。 JComponents 不支持透明色作为背景色。这里有个好article @camickr 详细解释了问题并提供了替代解决方案。

关于java - Swing:将鼠标悬停在半透明 JPanel 上的单选按钮标签上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11515582/

相关文章:

java - 在运行时更改 JTable 引用 - 未出现在 GUI 中

java - 正确调整 JScrollPane 及其内容的大小

Java Swing JPanel 对象大小均与 JTextField 大小匹配

java - intellij 停止自动格式化使用大括号的 java 初始化代码周围的空白行

java - 如何在另一个模态 JDialog 之上创建一个模态 JDialog

java - 将 JComboBox 放入 JTable 并从列表中获取元素而不是编辑单元格

java - JTable - 拖放

java - 使用循环(for)在JPanel中添加JButton?

java - 我的静态 util 方法线程安全吗

java - 如何使用 AEM 解析 org.apache.http.ssl?