2013-11-15 5 views
0

У меня есть 1 MAIN-КАДР и 2 ВНУТРЕННИХ ОБРАМЛЯЕТ (скажем ->Frame 1 и Frame 2) в моей яве NetBeans проекта. Для того, чтобы перейти от основной рамы к кадру 1, я использовал следующий код в классе основного кадра: -Переключения между внутренними кадрами в Java

Frame1 frame = new Frame1(); 
    frame.setVisible(true); 
    jDesktopPane1.add(frame); 
    setContentPane(jDesktopPane1); 

Приведенный выше код работает прекрасно, создавая тем самым кадр 1. Но приведенный ниже код , который находится в кадре 1 в КЛАССЕ не работает, к сожалению: -

Frame2 frame2 = new Frame2(); 
    MainFrame mf = new MainFrame(); 
    frame2.setVisible(true); 
    mf.setContentPane(frame2); 

Пожалуйста, скажите мне, где я буду неправильно. Я как бы новичок в java. Итак, будьте спокойны, если вы найдете этот вопрос глупым.

ответ

2

Так как ваш не обеспечивает SSCCE, я буду делать некоторые предположения:

  • Frame1 и frame2 оба JInternalFrames

  • MainFrame является JFrame, и вы хотите только один экземпляр it

Исходя из этого, после того, как Frame1 создает Frame2, он не должен создавать другой MainFrame. Вместо этого Frame2 необходимо добавить в JDesktopPane исходного MainFrame.

Существует много способов сделать это. Один из способов - создать метод для MainFrame, который позволит абонентам добавлять JInternalFrame на свой рабочий стол. Что-то вроде:

public void addFrame(JinternalFrame iFrame) 
{ 
    desktop.add(iFrame); 
} 

, который потребует каждого абонента (Frame1 в данном случае), чтобы иметь дескриптор исходного экземпляра MainFrame.

 Смежные вопросы

  • Нет связанных вопросов^_^