2012-05-24 2 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

인스턴스에서 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

나머지 부분에 대해서도 여전히 setVisible (true) 여전히 +1하기 전에 팩()을 매우 중요하게 생각합니다 :-) –

관련 문제