在java中,我的按钮周围是白色的粗边框,仅当我在jlabel
中有背景图像时才会出现。
实施例:
这里的问题是白色边框绕着我的所有按钮,使它看起来很糟糕。预期用途是让按钮只是覆盖图像,如下图所示:
这是我的代码:
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);
}
答案 0 :(得分:1)
您的问题似乎是您正在向您的GUI添加JPanel而不更改opaque属性。默认情况下,此属性为true,这意味着JPanel将绘制一个可视化覆盖其下方任何内容的背景,但如果通过调用myPanel.setOpaque(false);
将其设置为false,则JPanel下方的任何组件都将显示。对于大多数任何Swing组件都是如此,尽管对于组件组件(如JScrollPanes和JTextComponents)来说并不是那么简单。