Обработка события - Java
Формулировка задачи:
Подскажите пожалуйста, как сделать что бы по нажатию пункта меню надо будет менять количество кнопок на панели, а ненужные скрывать.
Решение задачи: «Обработка события»
textual
Листинг программы
package javaapplication41;
import java.awt.Desktop;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
public class ex {
JMenuBar jmb;
JMenu jmcolors;
JMenuItem green, yellow, black, morecolors, pink, red;
JButton btn1, btn2, btn3;
ex(){
JFrame jfrm = new JFrame("");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(200, 200);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jmb = new JMenuBar();
btn1= new JButton ("green");
btn2= new JButton ("yellow");
btn3= new JButton ("black");
jmcolors = new JMenu("Colors");
green = new JMenuItem("green");
yellow = new JMenuItem("yellow");
black = new JMenuItem("black");
jmcolors.add(green);
jmcolors.add(yellow);
jmcolors.add(black);
jmb.add(jmcolors);
green.addActionListener(new ItemMenuListener());
yellow.addActionListener(new ItemMenuListener());
black.addActionListener(new ItemMenuListener());
jfrm.add(btn1);
jfrm.add(btn2);
jfrm.add(btn3);
jfrm.setJMenuBar(jmb);
jfrm.setVisible(true);
}
private class ItemMenuListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem itm = (JMenuItem)e.getSource();
if(e.getActionCommand().equals("green")){
btn1.setEnabled(true);
btn2.setEnabled(false);
btn3.setEnabled(false);
}
if(e.getActionCommand().equals("black")){
btn1.setEnabled(false);
btn2.setEnabled(true);
btn3.setEnabled(false);
}
if(e.getActionCommand().equals("yellow")){
btn1.setEnabled(false);
btn2.setEnabled(false);
btn3.setEnabled(true);
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ex();
}
});
}
}