2013-10-16 69 views
2

我打破了我的代碼,但我無法弄清楚如何。完全一樣。框架不會顯示?

一次,編譯和運行代碼每次都會渲染一個窗口。然後我工作了大約15分鐘,運行時框架不再出現。我試着撤消工作,添加運行方法,添加主要方法,甚至直接從我的教科書中複製和粘貼代碼。沒有任何工作。

我試圖粘貼儘可能少的代碼。原諒我,如果我的代碼是sl;的;這是我第一次使用swing。謝謝!

public class LibraryFrame extends JFrame implements ActionListener 
{ 
    private JScrollPane studentScroller = new JScrollPane(); 
    private JPanel addStudent = new JPanel(); 
    private JTextField UID = new JTextField(); 
    private JTextField name = new JTextField(); 
    private JTextField email = new JTextField(); 
    private JButton okButton = new JButton("OK"); 
    private JButton closeButton = new JButton("Close"); 
    private JPanel buttonPane = new JPanel(); 

    public LibraryFrame() 
    { 

     setTitle("Student Enrollment"); 
     setSize(500,200); 
     setLocationByPlatform(true); 


     addStudent.setLayout(new GridLayout(0, 2, 0, 0)); 
     addStudent.add(new JLabel("Enter Student UID:")); 
     addStudent.add(UID); 
     addStudent.add(new JLabel("Enter Student Name:")); 
     addStudent.add(name); 
     addStudent.add(new JLabel("Enter Student Email:")); 
     addStudent.add(email); 
     addStudent.add(Box.createRigidArea(new Dimension(0, 5))); 
     addStudent.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 

     okButton.setActionCommand(null); 
     closeButton.addActionListener(new ActionListener() //implement window close only 
     { 
      @Override 
      public void actionPerformed(ActionEvent e) 
      { dispose(); } 
     }); 

     buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); 
     buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); 
     buttonPane.add(Box.createRigidArea(new Dimension(0, 0))); 
     buttonPane.add(okButton); 
     buttonPane.add(Box.createRigidArea(new Dimension(10, 0))); 
     buttonPane.add(closeButton); 

     Container studentPane = getContentPane(); 
     studentPane.add(addStudent, BorderLayout.CENTER); 
     studentPane.add(buttonPane, BorderLayout.PAGE_END); 
     pack(); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     pack(); 
     setVisible(true); 
    } 
} 
+5

沒有主要的方法。 –

回答

3
  • 你沒有顯示出主要方法,所以我們不知道你是怎麼嘗試運行此。
  • 您將全部添加到studentPane。你在哪裏添加studentPane到JFrame,到this對象?如果它沒有添加到GUI,它不會顯示。
+0

我還沒有建立一個主要的方法,但它從一開始就創建了set塊的時候沒有一個運行正常。 – rice2007

+3

@ rice2007:對不起,但沒有什麼意義,因爲沒有主要方法(無論是顯式還是隱式(即小程序))都不會運行。做正確的事 - 創建一個創建GUI對象的主要方法。但是,你也沒有向我們展示全班。有沒有一種主要的方法,但你現在失去了? –

+0

我知道,即使我向你支付了1萬美元,但你永遠不會相信它沒有一種主要的方法。我也認爲這很奇怪,但我認爲這是由於我還沒有學到的東西。 我在另一個UI類的主要方法中創建了一個新的'LibraryFrame'對象。也許我昨​​晚編了很久,忽略了一些小事。 順便說一句,當你說'這個'時,你有什麼答案? – rice2007