Я хочу сделать заявление переключателя, чтобы добавить другую страницу в зависимости от того, какую кнопку нажимает пользователь - PullRequest
0 голосов
/ 29 февраля 2020
private Component createContent() {
        final Image image = requestImage();

        JPanel panel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawImage(image, 0, 0, null);
            }
        };

        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        for (String label : new String[]{"BlackJack", "Poker", "Go-Fish"}) {
            JButton button = new JButton(label);
            button.setAlignmentX(Component.CENTER_ALIGNMENT);
            panel.add(Box.createRigidArea(new Dimension(15, 15)));
            panel.add(button);
        }

        panel.setPreferredSize(new Dimension(500, 500));

        return panel;
    }

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

Ответы [ 2 ]

1 голос
/ 01 марта 2020

A. Пусть класс, в котором вы написали этот метод, реализует ActionListener

B. Добавьте ActionListener к каждой кнопке следующим образом :

for (String label : new String[]{"BlackJack", "Poker", "Go-Fish"}) {
    JButton button = new JButton(label);
    button.setAlignmentX(Component.CENTER_ALIGNMENT);
    button.addActionListener(this);
    panel.add(Box.createRigidArea(new Dimension(15, 15)));
    panel.add(button);
}

C. Определите следующий метод в этом классе:

@Override
public void actionPerformed(ActionEvent e) {
    switch (e.getActionCommand()) {
    case "BlackJack":
        // TODO
        break;

    case "Poker":
        // TODO
        break;
    case "Go-Fish":
        // TODO
        break;
    }
}
1 голос
/ 29 февраля 2020

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

button.addActionListener(listener)

Являясь объектом-слушателем, является реализацией интерфейса ActionListener (необходимо определить метод de actionPerfomed (ActionEvent e))

https://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionListener.html

Помните, что оператор switch в Java мог работать только с примитивами и начиная с JDK 7 строковых литералов, но это так.

Надеюсь, это поможет.

...