2010-12-13 2 views
0

У меня есть два класса: класс A и класс B. Класс A имеет основной метод. Класс B - пользовательский интерфейс (JFrame). Я хочу, чтобы иметь экземпляр B в A, но когда я пишу какой-либо из следующих прогонов программы, но ни одно окно не показывает:Java: Создание нового экземпляра класса UI

public class A{ 
    static B d= new B(); 
     public static void main(String args[]){ 
          d.setVisible(true);} } 



public class A{ 
     public static void main(String args[]){ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new B().setVisible(true); 
      } 
     }); 
     }} 


public class A{ 
      public static void main(String args[]){ 
      B d= new B() 
      d.setVisible(true); 
      }} 

Как я могу показать окно?

+1

Что такое "JForm"? Обычно вы хотите вызвать 'setVisible' и, вероятно,' pack', на 'JFrame'. –

+0

жаль, что я имел в виду JFrame. Я отредактирую его. Я попытался использовать d.pack(), но окно все еще показывает. – schmitz

+0

Вы установили размер JFrame? – Thomas

ответ

1

К сожалению, вы не показать нам код для класса B. Возможно, следующий пример может дать вам подсказку:

public class B extends JFrame { 
    public B() { 
     super("Hello, JFrame!"); 
    } 
} 

public class A { 
    public static void main(String[] args) { 
     B b = new B(); 
     b.setSize(300, 400); 
     b.setVisible(true); 
    } 
} 

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

0

Оказалось, что проблема была в классе A. У меня была инструкция, которая ожидала ввода из потока перед новым B(), но не получала вход.

+0

Не забудьте закрыть этот вопрос. – Thomas

+0

Как закрыть вопрос? – schmitz

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