java - JLabel 也呈现在按钮上

标签 java swing

我的 Swing 应用程序出现问题。如果我启动应用程序并将鼠标指针放在按钮所在的位置,上方的 JLabel 就会出现在按钮上。

这是一张显示我的问题的图片

/image/jcBoF.png

    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    defFont = new Font("Impact", Font.PLAIN, 32);

    JPanel mainpanel = new JPanel();
    mainpanel.setLayout(new BorderLayout());
    mainpanel.setPreferredSize(new Dimension(480, 320));
    mainpanel.setBackground(Color.white);

    JLabel title = new JLabel("-----Title-----");
    title.setFont(defFont);
    title.setHorizontalAlignment(JLabel.CENTER);

    JLabel footer = new JLabel("Footer");
    footer.setFont(defFont.deriveFont(Font.TRUETYPE_FONT, 14f));

    JPanel midPanel = new JPanel();
    midPanel.setBackground(Color.GRAY);
    midPanel.setLayout(new GridBagLayout());

    JButton startGameButton = new JButton("New Game");
    applySettings(startGameButton);

    midPanel.add(startGameButton);

    mainpanel.add(title, BorderLayout.NORTH);
    mainpanel.add(midPanel, BorderLayout.CENTER);
    mainpanel.add(footer, BorderLayout.PAGE_END);

    add(mainpanel);
    pack();
    setVisible(true);

编辑:忘记粘贴 applySettings 方法。按钮上有一些样式,也许是功能,使其透明是问题所在。

我对代码进行了一些测试,当我尝试设置背景颜色时,它崩溃了。

private void applySettings(JButton button)
{
    button.setPreferredSize(new Dimension(200, 100));
    button.setFont(defFont.deriveFont(Font.TRUETYPE_FONT, 24f));
    button.setBorder(BorderFactory.createLineBorder(Color.black, 2, true));

    button.setFocusPainted(false);
    button.setBackground(new Color(255, 255, 255, 100));
    button.setContentAreaFilled(true);
}

最佳答案

找到this网上解决了,问题就解决了。

引用号:Backgrounds With Transparency

关于java - JLabel 也呈现在按钮上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50163866/

相关文章:

java - 查找段落中句子的起点和终点斯坦福CoreNLP

java - 在java.awt.AWTEventMulticaster.mouseExited(AWTEventMulticaster.java :309)

java - JPanel 调整大小未发生

java - Hazelcast 队列信息

java - Android 上翻译器对象的抽象类或接口(interface)

Java docker 文件。构建并测试还是只运行 jar 文件?

java - 如何让JComboBox中的内容居中显示?

java - 删除框架的标题栏并保留调整大小机制 - Java

java - JSpinner 时间约束

java - 创建了 sendgrid 电子邮件模板,如何从 Java 调用它