Как создать JFrame внутри JFrame? - PullRequest
1 голос
/ 27 апреля 2010

Как мы можем создать основной JFrame с фоновым изображением и JFrame внутри основного JFrame с Java Swing?

Ответы [ 3 ]

2 голосов
/ 27 апреля 2010

Трудно понять, что вы имеете в виду под

JFrame внутри основного JFrame

Прочтите, что такое JFrame . Возможно, вам нужно диалоговое окно в вашем приложении, или, может быть, внутреннее окно . Или, может быть, просто еще одна панель .

Чтобы получить фоновое изображение в JFrame, я рекомендую просто добавить JPanel с фоновым изображением в область содержимого JFrame: s. 1019 *

2 голосов
/ 27 апреля 2010

Я полагаю, вы ищете внутренние кадры .

Для бита фонового изображения, подкласс 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());
    }

}
1 голос
/ 27 апреля 2010

Исходя из моего понимания, вам не нужно будет вкладывать JFrame в другой JFrame, и я не думаю, что это тоже хороший дизайн. Вместо этого вы можете использовать JPanels.

В основном вам необходимо знать об этих двух классах:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...