(Java)我的所有按钮周围都有白色边框

时间:2015-06-12 15:56:45

标签: java swing border

在java中,我的按钮周围是白色的粗边框,仅当我在jlabel中有背景图像时才会出现。

实施例: enter image description here

这里的问题是白色边框绕着我的所有按钮,使它看起来很糟糕。预期用途是让按钮只是覆盖图像,如下图所示:

enter image description here

这是我的代码:

    public class Gui extends JFrame {
    private JTextField TextField;
    private JButton Hi, Bye, Exit;
    private JPanel Panel, Panel1, Panel2;
    private JLabel label;
            public Gui() {
            super("My Program");

            TextField = new JTextField("");
            TextField.setEditable(false);

            Hi = new JButton("Hi");
            Bye = new JButton("Bye");
            Exit = new JButton("Exit");

            Actions a = new Actions();

            Hi.addActionListener(a);
            Bye.addActionListener(a);
            Exit.addActionListener(a);

            Dimension tfd = new Dimension(780, 25);
            Dimension bd = new Dimension (75, 25);
            Dimension lpd = new Dimension (800, 600);

            TextField.setPreferredSize(tfd);

            Hi.setPreferredSize(bd);
            Bye.setPreferredSize(bd);
            Exit.setPreferredSize(tfd);

            ImageIcon image = new ImageIcon("C:/Users/Dakota/Desktop/Coding/Coding/img/Background.png");
            label = new JLabel(image);

            Panel = new JPanel();
            this.setContentPane(label);
            this.add(Panel);
            this.setLayout(new FlowLayout());
            Panel.add(TextField);
            Panel1 = new JPanel();
            this.add(Panel1);
            Panel1.add(Hi);
            Panel1.add(Bye);
            Panel2 = new JPanel();
            this.add(Panel2);
            Panel2.add(Exit);
}

1 个答案:

答案 0 :(得分:1)

您的问题似乎是您正在向您的GUI添加JPanel而不更改opaque属性。默认情况下,此属性为true,这意味着JPanel将绘制一个可视化覆盖其下方任何内容的背景,但如果通过调用myPanel.setOpaque(false);将其设置为false,则JPanel下方的任何组件都将显示。对于大多数任何Swing组件都是如此,尽管对于组件组件(如JScrollPanes和JTextComponents)来说并不是那么简单。