如何在JFrame中创建JFrame?

时间:2010-04-26 21:24:17

标签: java swing jframe

如何使用Java Swing在主JFrame中创建具有背景图像和JFrame的主JFrame?

3 个答案:

答案 0 :(得分:2)

很难知道你的意思是什么

  

主JFrame中的JFrame

阅读JFrame真正的内容。也许你想在你的应用程序中使用dialog window,或者internal window。或者只是另一个panel

要在JFrame中获取背景图片,我建议您只需将JPanel with a backround image添加到JFrame:s contentpane。

答案 1 :(得分:2)

我相信您正在寻找internal frames

对于背景图像位,子类JPanel,覆盖其paintComponent()方法,并在那里blit你的图像。然后将该面板的实例设置为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());
    }

}

答案 2 :(得分:1)

根据我的理解,您不需要在另一个JFrame中嵌套JFrame,我也不认为这样做也是好的设计。你可以做的就是嵌套JPanels。

您将主要了解这两个类: