當我把主機佈局等於null並運行應用程序時,它什麼也沒有顯示,但是如果我把它等於flowlayout()它顯示標籤。我不想使用flowlayout,因爲我想設置邊界並指定每個組件的座標。以下代碼中的問題是什麼?爲什麼我無法在佈局爲空時顯示框架?
public class pr8 extends JFrame
{
Font font;
Map attributes;
JPanel MainFrame;
JPanel PicFrame;
JLabel MainTitle;
JLabel Name;
JTextField NameInput;
public pr8 (String Title)
{
super (Title);
MainFrame = new JPanel();
this.add (MainFrame);
MainFrame.setVisible (true);
MainFrame.setLayout (null);
MainTitle = new JLabel("Student Entry Form");
MainFrame.add (MainTitle);
MainTitle.setFont(new Font("Serif", Font.PLAIN, 24));
font = MainTitle.getFont();
attributes = font.getAttributes();
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
MainTitle.setFont(font.deriveFont(attributes));
MainTitle.setBounds(400, 50, 200, 30);
Name = new JLabel ("Enter your name");
MainFrame.add (Name);
Name.setFont(new Font("Serif", Font.PLAIN, 24));
Name.setBounds (100, MainTitle.getY() + 50, 30, 30);
NameInput = new JTextField ("Name");
MainFrame.add (NameInput);
NameInput.setBounds(Name.getX() + 30, Name.getY(), 60, 30);
}
}
你有一個JFrame嗎?你需要一個JFrame來包含一個JPanel – Dan
請發佈一個[SSCCE](http://sscce.org)。 'MainTitle'和'attributes'沒有定義。 – markspace
@Dan yes類本身擴展JFrame –