2012-05-24 124 views
2
public class Start { 

public static void main(String[] args) { 
    JFrame j = new JFrame(); 
    final Graphics g = j.getGraphics(); 
    JButton jb = new JButton("Start"); 
    j.add(jb); 
    jb.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent arg0) { 
      HeavenlyBiome.spread(g); 

     } 
    }); 

} 

} 
... 
public class HeavenlyBiome { 
static Random r = new Random(); 
public static void spread(Graphics g){ 
g.setColor(Color.yellow); 
int spread = r.nextInt(2)+1; 
if (spread==1){ 
    g.fillRect(0,600,10,10); 
} 

所以我運行這個和一切編譯沒有錯誤的權利,但問題是,沒有窗口出現!如果它有幫助,這全部來自一個不是默認的軟件包,當你使用一個新的軟件包時,你可能需要做些特別的事情?我不知道,因爲我是一個新的編碼器,所以任何幫助表示讚賞!運行我的Java代碼,什麼也沒有發生

+2

你幾乎從來沒有*** ***通過調用'的getGraphics()'上(在這種情況下,當然不是)的組件讓你的顯卡。而是在JComponent派生的'paintComponent(...)'方法中繪製圖形。再次,教程很好地解釋了這一切。谷歌爲他們。 –

+0

好吧,那麼我應該怎麼做呢? – BaconMan97

+0

我很多年都沒有做過任何揮杆。你不需要展示框架或什麼? – mkoryak

回答

3

嘗試在您的JFrame實例上調用setVisible(true)

JFrame j = new JFrame(); 
JButton jb = new JButton("Start"); 
j.add(jb); 

j.setVisible(true); 

而且閱讀:http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html

+0

哇...呃。我真聰明!哈哈謝謝你!它工作 – BaconMan97

+0

@BaconMan:它可能會顯示JFrame,但您仍然需要修復您的圖形。再次,請檢查出內臟。 –

+3

雖然你錯過了一個非常重要的部分:-)'pack()'在'setVisible(true)'之前'仍然+1,其餘的:-) –

相關問題