Zmiana położenia przycisku po najechaniu na niego kursorem

0

Nie mogłem nigdzie tego znaleźć, dlatego tu piszę.
Mam zrobić program(prosty) z przyciskiem, który po najechaniu myszką na niego zmieniał swoje położenie (na losowe), aby w rzeczywistości nie można było w niego kliknąć.

Poruszanie się przycisku po kliknięciu na niego to jest jedyne co znalazłem.

private void countButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
            countButton.setLocation(countButton.getX() + 25, countButton.getY() + 25);
            countButton.setVisible(true);

Oraz pytanko czy to mi wygeneruje losowe liczby z przedziału 0-199 dla a i dla b?

Random r = new Random();  
            int a = r.nextInt(200);
            int b = r.nextInt(200);

poprawienie tytułu wątku i uzupełnienie listy tagów - @furious programming

0

Poczytaj o mouse listenerze tutaj:
https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

import java.util.Random;

public class NewClass {
    
    public static void main(String[] args){
    Random r = new Random();
    for (int i=0;i<10;i++){
int liczba = r.nextInt(100 - 90) + 90;

System.out.println(liczba);}
    }
}

Powyższe wygeneruje Ci, dodatnie liczby od 90 do 100 (włącznie z 90 i 100).

EDIT:Pętle dodałem, żebyś był pewny, że liczby są losowe.

W razie problemów pisze ;-)

Pozdrawiam

0

Ja pójdę tobie na łatwiznę :

najpierw usuń oknu pasek:

window.setUndecorated(true);

window to obiekt klasy JFrame.

A potem dodaj dla okna mouselistener:


window.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                window.setLocation(r.nextInt(1000), r.nextInt(1000));
            }
        });

Tadam.

Zanim zadasz pytanie, ze swoją znajomością angielskiego, poszukaj czy nie istnieje listener(słuchacz), który obsługuje to czego szukasz.

0

Ja ułatwię jeszcze bardziej i dam cały kod. Nie spełnia wszystkich warunków: ponieważ nowe położenie jest losowe, to może się zdarzyć, że to nowe położenie jest zbliżone do starego i da się kliknąć (mimo że przycisk skoczył).

import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class JumpingButton extends JFrame
{
    private JButton button = null;
    private Random r = new Random();
    //------------------------
    public static void main(String[] args)
    {
        new JumpingButton();
    }
    //------------------------
    public JumpingButton()
    {
        setTitle("Skaczący przycisk");
        setLayout(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100,100,800,600);
        button = new JButton("Kliknij mnie");
        button.setBounds(100,100,150,40);
        add(button);
        button.addMouseListener(new MouseAdapter()
        {
            public void mouseEntered(MouseEvent me)
            {
                button.setBounds(r.nextInt(650),r.nextInt(540),150,40);
            }
        });
        setVisible(true);
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1