我在java中创建了一个JFrame并使用Jlabel导入了一个背景图像,但现在我的按钮不可见也无法使用,如何将图像移动到按钮后面或使背景透明。
答案 0 :(得分:4)
没有代码就不可能说出什么是错的,但是你可能会在你的按钮之后添加你的JLabel,而JFrame的contentPane的BorderLayout正在导致一个组件JLabel覆盖另一个组件JButton。一个可能的解决方案:
如,
public class MyPanel extends JPanel {
private BufferedImage img;
public MyPanel(BufferedImage img) {
this.img = img;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (img != null) {
g.drawImage(img, 0, 0, null);
}
}
@Override
public Dimension getPreferredSize() {
if (img != null) {
int w = img.getWidth();
int h = img.getHeight();
return new Dimension(w, h);
} else {
return super.getPreferredSize();
}
}
}
注意:代码未经过测试。
答案 1 :(得分:2)
background使用Jlabel的图片,但现在我的按钮不可见也不可用
当您使用JLabel时,您需要设置标签的布局管理器,以便显示按钮:
JLabel label = new JLabel(...);
label.setLayout( new FlowLayout() );
JButton button = new JButton("Hello");
label.add( button );