我们如何创建带有背景图像的主JFrame和带有Java Swing的主JFrame内部的JFrame?
最佳答案
我相信您正在寻找internal frames。
对于背景图像位,子面板JPanel,覆盖其paintComponent()方法,然后在此处将图像变白。然后将该面板的一个实例设置为JFrame的内容窗格。
public class BackgroundPanel extends JPanel {
private BufferedImage bgImg;
public BackgroundPanel() {
try {
bgImg = ImageIO.read(BackgroundPanel.class.getResourceAsStream(
"mybackgroundimage.png"));
} catch (IOException ex) {
System.err.println("Could not load background image!");
ex.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (bgImg != null) {
g.drawImage(bgImg, 0, 0, null);
}
}
}
public class MyJFrame extends JFrame {
public MyJFrame() {
setContentPane(new BackgroundPanel());
}
}