gpt4 book ai didi

java - 将 ImageIcon 放置在 JButton 上时出现边框问题

转载 作者:行者123 更新时间:2023-12-01 09:49:44 24 4
gpt4 key购买 nike

我正在创建如下图像按钮

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Insets;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Demo {

private JFrame mainFrame;

static public Color BGCOLOUR1 = new Color(240, 240, 240);

public Demo() {

try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex) {
ex.printStackTrace();
}

mainFrame = new JFrame("DEMO");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setBackground(BGCOLOUR1);
mainFrame.setSize(300, 300);
mainFrame.setLayout(new BorderLayout());


JPanel smButtonContainer = new JPanel();
smButtonContainer.setLayout(new FlowLayout());
smButtonContainer.setOpaque(true);
smButtonContainer.setBackground(Color.WHITE);
smButtonContainer.setBorder(BorderFactory.createEmptyBorder(25, 10, 5, 0));

ImageIcon emailLogo = new ImageIcon(getClass().getResource("/resources/email.png"));
JButton emailButton = new JButton(emailLogo);
emailButton.setBorder(null);
emailButton.setBorderPainted(false);
emailButton.setBackground(Color.WHITE);
emailButton.setMargin(new Insets(0, 0, 0, 0));

smButtonContainer.add(emailButton);

mainFrame.add(smButtonContainer);


}

public static void main(String[] args) {
Demo demo = new Demo();
demo.showUI();
}

private void showUI() {
mainFrame.setVisible(true);
}

}

在我的开发机器(Fedora 23/KDE)上,这看起来不错:

enter image description here

但是当我在 Windows 7 计算机上运行该应用程序时,按钮看起来会凸起:

enter image description here

为什么会发生这种情况以及如何防止这种情况发生?

编辑:更新了示例。

最佳答案

您还需要添加:

emailButton.setFocusPainted(false);

在 Windows 上,会绘制一个虚线矩形来指示按钮具有焦点。

关于java - 将 ImageIcon 放置在 JButton 上时出现边框问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37677585/

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