2012-04-20 2 views
1

Я сделал несколько JFrames, и я хочу назвать их из JApplet. Каков наилучший способ сделать это? Могу ли я просто создать экземпляр JFrames в моем методе init, а затем вызвать их всякий раз, когда нажата кнопка?Как создать кнопку в Java-апплете, который открывает JFrame?

+0

Что делает апплет *** помимо открытых кадров? –

ответ

0

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

ИЛИ вы можете использовать синглтоны и ленивые инициализации:

class JFrameToOpen extends JFrame { 
    private static JFrame frame = null; 
    private JFrameToOpen() { 
     //init 
    } 
    public static GetJFrame() { 
     if(frame==null) { 
      frame=new JFrameToOpen(); 
     } 
     return frame; 
    } 
} 

Но одиночки уродлив и многие люди выбирают, чтобы избежать их.

3

Как создать кнопку в Java-апплете, который открывает JFrame?

Возможно, вы не должны этого делать, но если вы хотите открыть другое окно из JApplet, создайте и покажите JDialog. Они создаются и отображаются аналогично JFrame, но используются разные конструкторы. Вам нужно будет получить окно апплета для параметра «владельца» JDialog, и это может быть получено с помощью:

Window w = (Window) SwingUtilities.getAncestorOfClass(Window.class, comp); 

Где комп видимого компонента в JApplet.

+3

Также рассмотрите [tag: java-web-start]. – trashgod

0

Вы можете просто создать JFrame с конструктором по умолчанию, а затем показать:

JFrame frame = new JFrame(); 
JLabel label = new JLabel("Welcome"); 
frame.add(label); 
frame.pack(); 
frame.setVisible(true); 

Этот код вилы из апплета аналогичным образом, как из отдельной программы. Нет необходимости в каких-либо специальных трюках. Сам апплет может содержать только такие кнопки, как «нажмите, чтобы запустить приложение».

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