0
내 개발 시스템에서국경 문제 JButton의
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);
}
}
아래와 같은 이미지 버튼을 만드는 오전에 이미지 아이콘을 배치 할 때 (페도라 23/KDE)이 잘 보이는 :
하지만를 Windows 7 컴퓨터에서 응용 프로그램을 실행하면 버튼 모양이 보입니다.
왜 이런 일이 발생합니까? & 어떻게 이런 일을 방지 할 수 있습니까?
편집 : 예를 업데이트했습니다. 점선 사각형에 포커스가 버튼을 표시하기 위해 그려진 Windows에서
emailButton.setFocusPainted(false);
:
같은 LAF를 사용하고 계십니까? – JoSSte
더 나은 도움을 받으려면 [MCVE] 또는 [짧은 내용, 자체 포함, 올바른 예] (http://www.sscce.org/)를 게시하십시오. –
예제를 업데이트했습니다. 리소스를 포함하는 방법을 잘 모릅니다. – Lieuwe