有人知道如何删除JButton上的白色矩形边框吗?这个问题只适用于windows look&当按钮有点圆润时感觉到。
请在图片上找到附带的示例。
将边框设置为空或null无济于事。保证金相同。
只有当我将按钮的不透明度设置为false时,白边/边框才会消失,但不幸的是,在这种情况下,整个按钮在某些版本的窗口上也是不透明的。
当我将opacity设置为false时,它看起来像:
代码示例:
public class TestFrame extends javax.swing.JFrame {
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
TestFrame inst = new TestFrame();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public TestFrame() {
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setLayout(null);
this.getContentPane().setBackground(Color.BLACK);
JButton button = new JButton();
button.setBounds(10, 10, 100, 50);
button.setBorder(BorderFactory.createEmptyBorder()); // not working
button.setBorder(null); // not working
button.setMargin(new Insets(0,0,0,0)); // not working
add(button);
pack();
setSize(400, 300);
}
}
谢谢, Lubos
答案 0 :(得分:0)
看起来像是一个绘画问题。您可以使用:
button.setBackground( Color.BLACK );
答案 1 :(得分:0)
编辑:请参阅以下评论。即使使用适当的布局,此样本仍会显示效果。设置背景颜色似乎显示不需要的边框。此效果不会显示金属。似乎Windows L& F显示圆形边缘,但按钮仍然是矩形。如果容器的BG颜色变为明显的颜色,如黑色,那么它们之间的空间只是显而易见的。
import java.awt.*;
import javax.swing.*;
public class TestFrame extends JFrame
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
e.printStackTrace();
}
TestFrame inst = new TestFrame();
inst.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public TestFrame()
{
JButton button = new JButton("One");
JButton button2 = new JButton("Two");
JPanel p = new JPanel();
p.setBackground(Color.BLACK);
p.setLayout(new FlowLayout());
p.add(button);
p.add(button2);
add(p);
setSize(400, 300);
}
}