JButton
MacでEclipseを使ってGUIを設計していて、設定したアイコンだけを表示するようにしたいです。Mac OS では問題ないように見えますが、それを jar ファイルにエクスポートし、Windows OS で轍を付けると、JButton
次のようになります。
ボーダーはすべてEmptyBorder
です。
私は何を間違えましたか?奥の四角を消すにはどうしたらいいですか?
JButton
MacでEclipseを使ってGUIを設計していて、設定したアイコンだけを表示するようにしたいです。Mac OS では問題ないように見えますが、それを jar ファイルにエクスポートし、Windows OS で轍を付けると、JButton
次のようになります。
ボーダーはすべてEmptyBorder
です。
私は何を間違えましたか?奥の四角を消すにはどうしたらいいですか?
この質問に正しく答えるには、SSCCEが必要になる可能性が高くなります。setContentAreaFilled(false)
とにかく、JButton
インスタンスで呼び出したいと思うでしょう。これにより、「正方形」が効果的に削除されます。
ただし、この関数を呼び出す正確な動作は、コンポーネントごと、および L&F ごとに異なることに注意することが重要です。
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public final class JButtonDemo {
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI(){
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JIconButton());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static final class JIconButton extends JButton{
private static final long serialVersionUID = 7274140930080397481L;
public JIconButton(){
super(UIManager.getIcon("OptionPane.informationIcon"));
setContentAreaFilled(false);
setFocusPainted(false);
setBorder(BorderFactory.createEmptyBorder());
}
}
}
1)それを再現することはできません。そのために書いたコードを見ずに言うのは難しいです。
2) XxxButtonUI に触れたため、これは実際にはネイティブ OS 関連の問題であり、そのためにルック アンド フィールが使用されています。
3) MetalButtonUI をオーバーライドするとどうなりますか?
4)半透明の背景がありますか、またはいくつかの色がありますか、または ...