2014-03-03 71 views
0

我有可能,我使用Eclipse問題一個奇怪的問題:Java GUI組件不會出現在JFrame中

我想將程序計算器,但它應該出現在JFrame中的組件,不存在!該文本框沒有出現,直到我點擊它,按鈕出來的時候我走在它與鼠標指針...

這裏是我的代碼:

package calculator; 

import java.awt.Font; 

import javax.swing.JFrame; 
import javax.swing.JTextField; 
import javax.swing.JButton; 

public class MeinTaschenrechner extends JFrame { 

    JTextField textField; 
    JButton button1; 

    public MeinTaschenrechner() { 

     setVisible(true); 
     setSize(300, 300); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLocationRelativeTo(null); 
     setTitle("Taschenrechner"); 
     setResizable(false); 
     setLayout(null); 


     textField=new JTextField("0"); 
     textField.setBounds(5, 10, 285, 50); 
     Font font=textField.getFont().deriveFont(Font.PLAIN,30); 
     textField.setFont(font); 
     add(textField); 
//  addingNumberButtons(); 
     button1=new JButton("1"); 
     button1.setBounds(5, 65, 75, 65); 
     add(button1); 
    } 

這裏是我的主類:

package calculator; 

public class ExecuteKlasse { 

    public static void main(String[] args) { 

     MeinTaschenrechner cc=new MeinTaschenrechner(); 

    } 

} 

回答

2

您無法使setVisible(true);你的第一行代碼。添加setVisible(true);作爲構造函數中的最後一行。

+0

完美!第一行是什麼問題? – user3133542

+2

如果它是第一行,那麼你的組件處於任何狀態,開始繪製。其他人的構造不會出現,直到下一次重繪爲止,這可能是由於許多原因發生的,例如,如果拉伸窗口,或者如果組件具有像您使用按鈕那樣的組件,則將鼠標懸停在特殊翻轉區域上。 – NESPowerGlove

+2

@ user3133542,您需要將組件添加到框架之前,使其可見。另外,請勿使用setBounds()。 Swing旨在與佈局經理一起使用。 – camickr