Мне было интересно, сможет ли кто-нибудь помочь, потому что я искал в Интернете все выше и ниже и даже спросил одного из своих наставников, и они тоже не могли этого выяснить.
По сути, это то, что нужно сделать:При инициализации приложение должно случайным образом выбрать, где найти кнопку «Нажмите меня».Когда мышь перемещается над кнопкой «щелкнуть меня», она должна переместиться в случайное положение (перетасовать кнопки), чтобы пользователь всегда преследовал кнопку «щелкнуть мной» и никогда не смог ее щелкнуть.
Мне удалось получитькнопки для перестановки мест при инициализации, поместив кнопки в массив и добавив массив на панель, затем перетасовывая кнопки, но я не могу заставить их сделать это снова, когда мышь находится над кнопкой «щелкни меня».
Вот код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.EmptyBorder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.*;
public class Chase extends JFrame implements MouseListener {
JButton plain1, plain2, plain3, plain4, plain5, plain6, plain7, plain8, click;
ArrayList<JButton> buttons;
JPanel panelButtons;
public Chase(){
JPanel panel = new JPanel(new BorderLayout(5, 5));
panel.setBorder(new EmptyBorder(4, 4, 4, 4));
setTitle("Catch me if you can!");
setContentPane(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panelButtons = new JPanel(new GridLayout(3, 3, 4, 4));
buttons = new ArrayList<JButton>();
plain1 = new JButton();
plain2 = new JButton();
plain3 = new JButton();
plain4 = new JButton();
plain5 = new JButton();
plain6 = new JButton();
plain7 = new JButton();
plain8 = new JButton();
click = new JButton("Click Me");
buttons.add(plain1);
buttons.add(plain2);
buttons.add(plain3);
buttons.add(plain4);
buttons.add(plain5);
buttons.add(plain6);
buttons.add(plain7);
buttons.add(plain8);
buttons.add(click);
Collections.shuffle(buttons);
for(JButton jb:buttons){
panelButtons.add(jb);
}
panel.add(panelButtons, BorderLayout.CENTER);
pack();
setSize(500, 300);
setVisible(true);
click.addMouseListener(this);
}
public void mouseEntered(MouseEvent event){
//this is what I need to figure out.
Collections.shuffle(buttons);
}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public static void main(String[] args) {
Chase chase = new Chase();
}
}
Любая помощь будет высоко ценится.