Ну, если ты хочешь создать внутреннее окно (это называется виртуальный рабочий стол), то тебе нужно сделать следующее:
В java jdk_1.4, в пакете javax.swing, добавлены классы JInternalFrame(внутреннее окно) и JDesktopPane(виртуальный рабочий стол)... Берёшь объявляешь в своём классе поле типа JDesktopPane:
Твой_Класс {
...
JDesktopPane desktop; // допустим
...
// далее идет...
Конструктор_класса() { // или метод инициализации
...
// прописываешь
desktop = new JDesktopPane();
// обычно такое действие как открытие внутреннего окна цепляют за
// каким нибудь событием, например нажатие кнопки или открытие главной формы,
// таким образом, лучше всего создать метод инициализации внутреннего окна, который
// будет вызываться при генерации события.
// к примеру нажатие кнопки:
openBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
createFrame(0, 0, splitPane, 942, 455, "База данных"); // метод инициализации внутреннего окна
}
});
...
}
// метод инициализации может быть в следующей форме...
// к примеру:
private void createFrame(int posX, int posY, Container c, int width, int hight, String caption) {
// первые два параметра этого метода, координаты левого верхнего угла внутр. окна,
// "с" - это контейнер который будет содержаться в твоём окне (это может быть например панелька
// с текстовыми полями, областями, там кнопками и т.д. или допустим какая нибудь сплит-панель)
// Первое, что делаешь, создаёшь экземпляр твоего внутреннего окна
JInternalFrame j = new JInternalFrame(caption, false, true, true, true); // caption - это заголовок окна
// "логика" - это меняет ли
// размеры окно, сворачивается,
// разворачивается, закрывается
и т.д.
// И начинаешь его инициализировать
j.setBorder(BorderFactory.createRaisedBevelBorder()); // это, чтобы окно было выпуклым
j.setBounds(posX, posY, width, hight); // потом устанавливаешь позицию окна и размеры
j.setContentPane©; // затем устанавливаешь контейнер
// также у внутреннего окна можно перехватывать события, например открыть/закрыть окно
j.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
public void internalFrameOpened(InternalFrameEvent e) {
/*код*/
};
public void internalFrameClosed(InternalFrameEvent e) {
/*код*/ }
});
// после того как окно готово, добавляешь его к виртуальному рабочему столу (desktop)
// причем добавляещь как обычную панель...
desktop.add(j, BorderLayout.CENTER);
// и затем выводишь окно на экран.
j.show();
}
...
//
и в конце уже твоего конструктора формы добавляешь свой виртуальный рабочий стол к главной форме.
contentPane.add(desktop);
...
this.setSize(950, 640);
this.setResizable(false);
this.setJMenuBar(menuBar);
this.setVisible(true);
}
Наднюсь, я помог
fftop: