Создать форму с несколькими кнопками так, чтобы надпись на первой кнопке при ее нажатии передавалась на следую - 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); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д