привет, я новичок здесь, и я не очень хорошо разбираюсь в вопросах, но я искал это в Интернете целую вечность. вот мой вопрос: я хочу нарисовать прямоугольник с помощью мыши x и y. Я хочу, чтобы там было много прямоугольников, поэтому, если бы я щелкнул координату 50, 50 на JFrame, он нарисовал бы прямоугольник, а затем, если бы я щелкнул где-то еще, он нарисовал бы еще один прямоугольник, но не удалил бы другой, поэтому я мог бы щелкнуть 5 раз (< - пример), тогда у меня было бы пять прямоугольников сразу. Пожалуйста, помогите мне и сделайте это как можно проще. Заранее спасибо, пожалуйста, помогите мне.java: сразу несколько прямоугольников
мой код:
public class Game extends Canvas implements Runnable {
private static final long serialVersionUID = 1L;
public boolean running = false;
public static final String title = "tilebased game!";
private Thread thread;
public int height = 600;
public int width = 800;
private Dimension d = new Dimension(width, height);
public static Rectangle block;
public static Rectangle[] blocks = new Rectangle[2];
public static int blocknum = 0;
public static int xCreate;
public static int yCreate;
public static int xcoord;
public static int ycoord;
public Game() {
setPreferredSize(d);
setMinimumSize(d);
setMaximumSize(d);
addMouseListener(new tile());
addMouseMotionListener(new tile());
}
public void start() {
running = true;
new Thread(this).start();
}
public void stop() {
running = false;
}
public static void main(String[] args) {
Game g = new Game();
JFrame f = new JFrame();
f.add(g);
f.pack();
f.setTitle(title);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
g.start();
}
public void run() {
while(running){
tick();
render();
}
try{
Thread.sleep(5);
}catch(Exception e){
}
}
public void render() {
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(2);
return;
}
Graphics g = bs.getDrawGraphics();
tile.render(g);
g.dispose();
bs.show();
}
public void tick() {
}
}
и другой класс, реализующий MouseListener
и MouseMotionListener
:
public class listener implements MouseListener, MouseMotionListener {
public static Game game;
public Image img;
@Override
public void mouseDragged(MouseEvent arg0) {
}
@Override
public void mouseMoved(MouseEvent e) {
Game.xcoord = e.getX();
Game.ycoord = e.getY();
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
}
}
}
это добавить к моему вопросу. что было бы совместимо с моим кодом. (я все еще только изучаю java, кстати, и мне всего 13, а не очень умным). Прямоугольники должны иметь фиксированную высоту и ширину, поэтому, когда вы нажимаете на определенную область, она будет рисовать 10 x 10 прямоугольник, и он будет помнить все остальные прямоугольники, уже нарисованные, как в вашем примере, пожалуйста, помогите мне еще раз поблагодарить вас
Что такое новая плитка()? – barwnikk
1) * «Пожалуйста, помогите мне и сделайте это как можно проще». * Пожалуйста, задайте вопрос и отправьте сообщение по адресу [SSCCE] (http://sscce.org/). 2) Пожалуйста, добавьте письмо в верхнем регистре в начале предложений. Также используйте капитал для слова I, аббревиатуры и аббревиатуры, такие как JEE или WAR. Это облегчает людям понимание и помощь. –