我在组件上放置图像作为背景时遇到了一些麻烦。为什么会这样?我希望这四个按钮垂直对齐在框架右侧的某个位置。无论我使用什么布局技术,按钮的位置似乎都没有改变。
这是我的背景图片面板。是否有任何东西负责组件的这种不可更改性?它缺少某些东西吗?
static class bgImagePanel extends JPanel {
Image bgimage = null;
bgImagePanel(BorderLayout b) {
MediaTracker mt = new MediaTracker(this);
bgimage = Toolkit.getDefaultToolkit().getImage("bgimage1.jpg");
mt.addImage(bgimage, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int imwidth = bgimage.getWidth(null);
int imheight = bgimage.getHeight(null);
g.drawImage(bgimage, 1, 1, imwidth, imheight, null);
}
}
答案 0 :(得分:1)
问题似乎是你永远不会覆盖FlowLayout
中的默认布局管理器(bgImagePanel
)。您应该在其构造函数中调用super(b)
或setLayout(b)
:
public bgImagePanel(BorderLayout b) {
super(b);
MediaTracker mt = new MediaTracker(this);
bgimage = Toolkit.getDefaultToolkit().getImage("bgimage1.jpg");
mt.addImage(bgimage, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {}
}