2013-09-29 36 views
0

我無法讓我的GUI顯示,並且我確定我錯過了一些非常簡單的東西。這是作業。包含GUI類是在這裏:當我在我的主要方法中創建它時GUI似乎不顯示

public class SorcGUI extends JFrame{ 

    public void SorcGUI(){ 
     JTextArea jta = new JTextArea(); 
     JPanel jp1 = new JPanel(); 
     setTitle ("Sorcerers Cave"); 
     setSize (600, 600); 
     setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); 

     JButton jbsearch = new JButton("Search"); 
     JTree jTree = null; 
     JScrollPane treeView = new JScrollPane(jTree); 

     JButton jbshow = new JButton("Show Contents"); 
     JButton jbread = new JButton("Import File"); 
     JScrollPane jsoutput = new JScrollPane(jta); 
     JTextField jtfsearch = new JTextField(" enter search term "); 
     JLabel jlsearch = new JLabel("Search Type : "); 
     JComboBox jcbsearch = new JComboBox <>(); 
     jcbsearch.addItem ("index"); 
     jcbsearch.addItem ("Type"); 
     jcbsearch.addItem ("weight"); 

     //create a panel to hold the buttons and text fields 

     jp1.add(jbread);  
     jp1.add(jbshow); 
     jp1.add(jtfsearch); 
     jp1.add(jlsearch); 
     jp1.add(jcbsearch);   
     jp1.add(jbsearch); 
     jp1.add(treeView); 


     //add the components to the GUI 
     add(jp1, BorderLayout.PAGE_START); 
     add(jsoutput, BorderLayout.CENTER); 


     setVisible(true); 

     jbread.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       SorcCave sc = new SorcCave(); 
      } 
     }); 
     jbshow.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       System.out.println("show"); 
      } 
     });   
     jbsearch.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       System.out.println("search"); 
      } 
     }); 

而且我創建GUI的方式是簡單地添加以下到我的主要方法:

SorcGUI gui = new SorcGUI(); 

程序只是進入的形式運行,以建立成功在三秒鐘內,從不顯示GUI。我試圖通過將GUI的東西放入它自己的類文件來清理我的項目。感謝您的任何幫助。

+0

請顯示您的主要方法。 – vacuum

+0

public static void main(String args []){ SorcGUI gui = new SorcGUI(); //gui.setVisible(true); } // end main – Jeremy

回答

3

SorcGUI構造取下void關鍵字,這樣的組件可以添加到父容器

public SorcGUI() { 

閱讀:Providing Constructors for Your Classes

+0

從方法中刪除'void',以便它可以成爲'構造函數'。 –

+0

哇,我真的很感激。像魅力一樣工作! – Jeremy

+0

再次感謝,接受答案。 – Jeremy

1

我複製粘貼您的代碼和註釋的jbread操作方法和它適用於Eclipse IDE中的新Java項目。

我只從構造函數方法中刪除了'void'。

enter image description here

相關問題