2012-05-24 89 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,其余的:-) –

相关问题