Java. События кнопки

195
19 октября 2018, 20:00

Учу события кнопки и не могу решить задачу, т.к не понимаю с областями видимости и со смыслом.

Задание:

  1. Создайте пустое окно.
  2. При клике мышью в произвольной точке окна в этом месте должна появиться кнопка.
  3. Если кнопок будет уже 10 штук, то должно выводиться сообщение через JOptionPane: «Максимум 10 кнопок!»

Решение:

package guimousehomework;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class GUIMouseHomeWork {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Моя программа");
        frame.setBounds(600, 400, 850, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel top = new JPanel();
        top.setBorder(new EmptyBorder(20, 0, 0, 0));
        JButton button = new JButton("Кнопка");
        top.add(button);   
        frame.add(top);
        frame.setVisible(true);        

        frame.addMouseListener(new MouseListener() {
            int count = 0; 
            @Override
            public void mouseClicked(MouseEvent me) {   
                count++;
                button.setBounds(me.getX(), me.getY(), 30, 40);
                if(count > 10) JOptionPane.showMessageDialog(null, "Максимум 10 кнопок!");
            }
            @Override
            public void mousePressed(MouseEvent me) {
            }
            @Override
            public void mouseReleased(MouseEvent me) {
            }
            @Override
            public void mouseEntered(MouseEvent me) {
            }
            @Override
            public void mouseExited(MouseEvent me) {
            }
        });

    }
}
Answer 1

Чтобы появилась кнопка нужно ее создавать и добавлять на панель

  @Override
  public void mouseClicked(MouseEvent me) {
    count++;
    if (count > 10) {
      JOptionPane.showMessageDialog(null, "Максимум 10 кнопок!"); 
    } else {
      JButton button = new JButton("Кнопка "+count);
      top.add(button);
      button.setBounds(me.getX(), me.getY(), 100, 50);
    }
  }
READ ALSO
Следить за Log-ами приложения

Следить за Log-ами приложения

UPDATED Как правильно записывать логи в файл в приложении, что проверяют тестировщики?

217
Как установить пометку checked в form:radiobuttons?

Как установить пометку checked в form:radiobuttons?

при генерации формы на jsp странице использую тег form:radiobuttons, в который передаю список с параметрами

220
Чтение и запись данных sd карты в Android

Чтение и запись данных sd карты в Android

Необходимо читать и писать данные в память sd карты (желательно иметь возможность указать адрес или смещение записи)SD карта без файловой системы

176