Создать форму с несколькими кнопками так, чтобы надпись на первой кнопке при ее нажатии передавалась на следую - Java

Узнай цену своей работы

Формулировка задачи:

Помогите доработать код
package zadacha;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
class Knopki  extends JFrame  implements ActionListener {
    JLabel jlab;
 
    Knopki() {
        private String text="Click";
        private int n=5;
        
        // создать новый контейнер JFrame
        JFrame jfrm = new JFrame("A Button Example");
 
        // установить диспетчер компоновки FlowLayout
        jfrm.setLayout(new FlowLayout());
 
        // задать исходные размеры рамки окна   <
        jfrm.setSize(220, 90);
 
        // завершить программу после закрытия окна
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Создание кнопок
        JButton[]jb=new JButton[n];
        jb[0]=new JButton(text);
        
        // Добавление приемников событий от кнопки.
        for(int i=0;i<n;i++){
        jb[i].addActionListener(this);
        }
        
        // Добавление кнопок на панели содержимого.
        for(int i=0;i<n;i++){
            jfrm.add(jb[i]);
            }
 
        // создать метку
        jlab = new JLabel("Press a button.");
 
        // добавить метку в рамке окна
        jfrm.add(jlab);
 
        // отобразить рамку окна
        jfrm.setVisible(true);
    }
 
    // Обработка событий от кнопки.
    public void actionPerformed(ActionEvent ae) {
        // Для определения нажатой кнопки используется команда действия.
         for(int i=0;i<n;i++){
        if(ae.getActionCommand().equals(text))
            button[i+1].setText(text);
         }
    }
 
    public static void main(String args[]) {
        // создать рамку окна в потоке диспетчеризации событий
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Knopki();
            }
        }) ;
    }
}

Решение задачи: «Создать форму с несколькими кнопками так, чтобы надпись на первой кнопке при ее нажатии передавалась на следую»

textual
Листинг программы
package knopki;
 
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
 
/**
 *
 * @author Nicholas White
 */
public class Knopki implements ActionListener {
 
    JLabel jlab;
    private String text;
    private int n;
    
    JPanel panel;
    JButton[]jb;
 
   public Knopki() {
         text="Click";
         n=5;
        JFrame jfrm = new JFrame("A Button Example");
        panel = new JPanel(new FlowLayout());
        jfrm.setContentPane(panel);
        jfrm.setSize(220, 90);
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        jb=new JButton[n];
        jb[0]=new JButton(text);
         panel.add(jb[0]);
         
        for(int i=1;i<n;i++){
            jb[i] = new JButton();
            panel.add(jb[i]);
            }
        
        for(int i=0;i<n;i++){
        jb[i].addActionListener(this);
        }
        
        jlab = new JLabel("Press a button.");
        panel.add(jlab);
        
        jfrm.setVisible(true);
    }
    
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Knopki();
            }
        }) ;
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        JButton b = (JButton) e.getSource();
        for(int i = 0; i < n; i++){
           
            if(b == jb[i]){
                jb[i].setText("");
                if(i == jb.length-1){
                    jb[0].setText(text);
                    continue;
                }
                jb[i+1].setText(text);          
            } 
        }
    }
    
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы