/* * The source code for this assignment started with * a sample from \"Thinking
ID: 3535617 • Letter: #
Question
/*
* The source code for this assignment started with
* a sample from "Thinking in Java" 3rd ed. page 825
* by Bruce Eckel. I have finished adding the rest of the action logic.
*
* Try to implement one new action listener at a time
* do not try to do all of them and then compile
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MessageBoxes{
private JButton[] b = {
new JButton("Alert"),
new JButton("Yes/No"),
new JButton("Color"),
new JButton("Input"),
new JButton("3 Vals"),
};
private JTextField txt = new JTextField(15);
private JFrame frame;
private ActionListener al = new ActionListener(){
public void actionPerformed(ActionEvent e){
String id = ((JButton)e.getSource()).getText();
if(id.equals("Alert")){
JOptionPane.showMessageDialog(null,
"There's a bug on you!", "Hey!",
JOptionPane.ERROR_MESSAGE);
}
else if(id.equals("Yes/No")){
int val = JOptionPane.showConfirmDialog(null,
"or no", "Chose yes",
JOptionPane.YES_NO_OPTION);
if(val != JOptionPane.CLOSED_OPTION){
if(val == 0){
txt.setText("Yes");
}
else{
txt.setText("No");
}
}
}
else if(id.equals("Color")){
Object[] options = {"Red", "Green"};
int sel = JOptionPane.showOptionDialog(null,
"Choose a Color!", "Warning",
JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE, null,
options, options[0]);
if(sel != JOptionPane.CLOSED_OPTION){
txt.setText("Color Selected: " + options[sel]);
}
}
else if(id.equals("Input")){
String val = JOptionPane.showInputDialog("How mant fingers do you see?");
txt.setText(val);
}
else if(id.equals("3 Vals")){
Object[] selections = {"First", "Second", "Third"};
Object val = JOptionPane.showInputDialog(null,
"Choose one", "Input",
JOptionPane.INFORMATION_MESSAGE,
null, selections, selections[0]);
if(val != null){
txt.setText(val.toString());
}
}
}
};
public MessageBoxes(){
frame = new JFrame("Title");
frame.setSize(250, 250);
frame.getContentPane().setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(int i = 0; i < b.length; i++){
frame.getContentPane().add(b[i]);
}
frame.getContentPane().add(txt);
frame.setVisible(true);
}
public void launchJFrame(){
for(int i = 0; i < b.length; i++){
b[i].addActionListener(al);
}
}
public static void main(String [] args){
MessageBoxes messageBoxes = new MessageBoxes();
messageBoxes.launchJFrame();
}
}
Explanation / Answer
What we have to do eith the code
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.