有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在按下按钮后尝试绘制

按下按钮后,如何使其重新喷漆?当我启动小程序时,它会在随机位置以随机的宽度和高度绘制两个矩形,按下按钮后如何让它们在不同的位置“重生”

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");

    }

}

共 (1) 个答案

  1. # 1 楼答案

    你干脆换个兰迪,兰迪,。。。。在你的actionPerformed(...)方法中,就像你现在做的那样,给它们新的随机值,然后调用repaint()通知小程序重新绘制自己


    顺便说一句,这段代码应该做什么

    Thread thread = new Thread();
    
    // .....
    
    public void start(){thread.start();}
    

    按照我的观点,这没什么用