2014-07-11 6 views
0

버튼을 누른 후 어떻게 다시 칠할 수 있습니까? 애플릿을 시작할 때 무작위 너비와 높이가있는 임의의 위치에서 2 개의 Rect를 페인트합니다. 버튼을 누른 후 다른 위치에서 "respawn"하도록하려면 어떻게해야합니까?버튼을 누른 후 페인트하려고합니다.

package test; 

import java.applet.Applet; 
import java.awt.Button; 
import java.awt.Graphics; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 

public class Main extends Applet implements ActionListener{ 

    private static final long serialVersionUID = 1L; 
    Thread thread = new Thread(); 
    boolean running = true; 
    Random r = new Random(); 
    public int randX = r.nextInt(400); 
    public int randY = r.nextInt(400); 
    public int randW = r.nextInt(100); 
    public int randH = r.nextInt(100); 

    public int randX2 = r.nextInt(400); 
    public int randY2= r.nextInt(400); 
    public int randW2 = r.nextInt(100); 
    public int randH2 = r.nextInt(100); 


    public void start(){thread.start();} 
    public void stop(){} 
    public void init(){ 
     setSize(500,500); 
     Button randomButton = new Button("RANDOMNESS"); 
     randomButton.addActionListener(this); 
     add(randomButton); 
    } 

    public void run(){} 
    public void destroy(){} 

    public void paint(Graphics g){ //paints rect with random with and height 
     g.fillRect(randX, randY, randW, randH); 
     g.fillRect(randX2, randY2, randW2, randH2); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) {// How can they repaint at a different random location after pressing the button? 
     System.out.println("WORKING"); 

    } 

} 

답변

2

어떻게 당신은 단순히 변경에 대해 randX, 랜디, ... 당신이 자신을 다시 칠하는 애플릿을 알리기 위해 현재 일을하고 repaint()를 호출하는 것처럼, 그들에게 새로운 임의의 값을 제공하여 actionPerformed(...) 메소드 내 ?


이 코드는 무엇을하고 있을까요?

Thread thread = new Thread(); 

// ..... 

public void start(){thread.start();} 

필자의 견해로는별로 효과가 없다.

+0

해결했습니다. 고마워 :) – Elias

+0

오, 그건 그냥 나중에 구현, 내가 이미 그것을 구현할 줄 알았지 만, 당신이 맞아, 많이하지 않는 지금 – Elias