2014-01-06 4 views
0

Моя проблема, надеюсь, будет простой в решении, и я считаю, что это просто недостаток моих знаний Java. Вероятно, я использовал неправильную терминологию в названии. Я сожалею о том, что. В принципе, я использую Java swing, а мой кадр - класс (public className расширяет JFrame). Мне нужно использовать фрейм в другом месте. Как мне это сделать? Я пробовал использовать JFrame frame = main.Window, но мне сказали, что он не может быть разрешен переменной. Итак, как мне его использовать?Как использовать расширенный класс как переменную?

+0

'Мне нужно использовать кадр где-то еще. Что это значит? новый экземпляр? тот же самый экземпляр? Покажите правильный код (как можно короче), демонстрирующий вашу проблему. – nachokk

ответ

2

Во-первых, don't extend JFrame. Что вам, вероятно, нужно сделать, так это поле в вашем классе, которое является JFrame.

Чтобы предоставить доступ к этому полю из другого класса, добавьте метод getter getter в ваш класс и убедитесь, что вы передали ссылку на ваш класс другому классу. Например.

public class Name { 
    private final JFrame frame = new JFrame(); 

    public JFrame getFrame() { 
    return frame; 
    } 
} 

Кроме того, решите, что другие классы, возможно, пожелает сделать с рамкой и представить конкретные методы в классе, чтобы поддержать это. например

public void makeFrameVisible() { 
    frame.setVisible(true); 
} 
Смежные вопросы