JPanel на JWindow, добавление компонентов - PullRequest
1 голос
/ 10 августа 2011

У меня есть JFrame, внутри кода JFrame я создаю JWindow и в окне я создал JPanel.На JPanel вставлено фоновое изображение.

JButton btnImage= new JButton("My Button");

 Image splashImg = Toolkit.getDefaultToolkit().getImage("images/image1.jpeg");

JPanel pnlSplashWindow= new JPanel(){ 

        public void paint(Graphics g){
          g.drawImage(splashImg,0,0,splashImg.getWidth(this),splashImg.getHeight(this),this);
    }
    };

    pnlSplashWindow.setLayout(new BorderLayout());
    pnlSplashWindow.add(BorderLayout.SOUTH,btnImage);
    JWindo window= new JWindow(this); // this refers to my class which has extended JFrame

    window.setContentPane(pnlSplashWindow);
    window.setSize(688, 344);
    btnImg.setVisible(true);
    window.setLocationRelativeTo(this);

Я новичок в JWindow и у меня есть следующие вопросы:

  1. Как добавить такие элементы, как кнопки и метки на JWindow (или JPanel,на JWindow)?
  2. Как установить мой JFrame в качестве родителя этого JWindow?Я имею в виду, когда JWindow активен, JFrame не должен быть кликабельным.

Пример желаемого конечного эффекта

Example of splash

1 Ответ

4 голосов
/ 10 августа 2011

Для добавления компонентов необходимо использовать:

pnlSplashWindow.add(btnImage, BorderLayout.SOUTH);

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

Но если вы хотите создать заставку, вам следует прочитать Как создать заставку .

...