我想知道是否可以将创建的组合框放置在 JPanel 上的背景图片之上。但是,我正在尝试这样做,我认为背景图像与我的组合框重叠,因此它不会出现。任何人都知道在顶部带有组合框的 JPanel 上放置背景图像并使用框布局进行定位的一种干净方式。
问问题
330 次
2 回答
1
我认为您应该使用 setComponentZOrder() 方法。
这是一个例子:http ://weblogs.java.net/blog/2009/01/21/swing-internals-paint-order
(查看 JavaDoc 以获取更多详细信息:setComponentZOrder() 方法
于 2013-01-09T21:02:03.447 回答
1
另一种可能更常用的方法是让您覆盖JPanel
paintComponent
并将图像直接绘制到Graphic
s 对象:
JFrame frame=...;
final BufferedImage bg=ImageIO.read(new URL("http://cs.anu.edu.au/student/comp6700/icons/DukeWithHelmet.png"));
JPanel p=new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(bg,0,0,null);
}
@Override
public Dimension getPreferredSize() {//so our JPanel will fit the image entirely
return new Dimension(bg.getWidth(),bg.getHeight());
}
};
frame.add(p);
frame.pack();
frame.setVisible(true);
于 2013-01-09T22:13:21.830 回答