2014-12-03 40 views
-1

我正在使用一本書來學習java。我創建了一個Swing窗口,但是當我嘗試創建JButton時,它們在運行時不可見。我已經完全按原樣複製了代碼,但它仍然不可見。下面是代碼:JButton在運行時添加但沒有顯示

import javax.swing.*; 
class Buttons extends JFrame 
{ 
    JPanel pnl = new JPanel(); 
    public Buttons() 
    { 
     super("Swing Window"); 
     setSize(500,200); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     add(pnl); 
     setVisible(true); 
     pnl.add(new JButton("Click Me")); 
    } 
    public static void main(String[] args) 
    { 
     Window gui = new Window(); 
    } 
} 
+1

*「我用一本書來學習java。」 *如果上面的代碼是一個結果,我不認爲這是一個非常不錯的書..順便說一句 - 了' main(String [])'方法通常會創建它所在的類的實例。這個我可能會更像'Buttons gui = new Buttons(); gui.setVisible(true);'.. – 2014-12-03 16:02:39

+0

這本書實際上讓我們學習Java使用,排序,謎題。例如:'class HelloWorld {public static void main(String [] args){}}'然後它告訴我們在main方法括號之間插入以下代碼:'System.out.println(「Hi」)' – 2014-12-04 14:31:29

回答

-1

改變窗口到按鈕和它工作得很好!

import javax.swing.*;  

class Buttons extends JFrame 
{ 
JPanel pnl = new JPanel(); 
public Buttons() 
{ 
    super("Swing Window"); 
    setSize(500,200); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
    add(pnl); 
    setVisible(true); 
    pnl.add(new JButton("Click Me")); 
} 
public static void main(String[] args) 
{ 
    Buttons gui = new Buttons(); 
} 

}

+0

謝謝,它確實有效。 – 2014-12-04 16:00:33

5

變化:

setVisible(true); 
    pnl.add(new JButton("Click Me")); 

要:

pnl.add(new JButton("Click Me")); 
    pack(); // very important! 
    setVisible(true); // should be last! 
+0

謝謝但對我來說有點複雜(12歲)。 – 2014-12-04 16:03:03