package work;
import javax.swing.*;
import java.awt.event.*;
public class Work extends JFrame
{ private static final long serialVersionUID = 1L;
private JPanel contents = null;
private JButton btnMessage1 = null;
private JButton btnMessage2 = null;
private JButton btnMessage3 = null;
private JButton btnConfirm1 = null;
private JButton btnConfirm2 = null;
private JButton btnConfirm3 = null;
private JButton btnInput1 = null;
private JButton btnInput2 = null;
private JButton btnInput3 = null;
private ImageIcon icon = null;
private final String TITLE_message = "Вікно повідомлення";
private final String TITLE_confirm = "Вікно підтверждення";
private final String[] town = { "Харків",
"Одеса",
"Тернопіль",
"Теребовля"};
public Work()
{ super("Приклад використання JOptionPane");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// Локализація кнопок
UIManager.put("OptionPane.yesButtonText" , "Так" );
UIManager.put("OptionPane.noButtonText" , "Ні" );
UIManager.put("OptionPane.cancelButtonText", "Скасувати");
contents = new JPanel();
icon = new ImageIcon("netbeans.png");
// Кнопки виклику вікон
btnMessage1 = new JButton("1");
btnMessage2 = new JButton("2");
btnMessage3 = new JButton("3");
btnConfirm1 = new JButton("4");
btnConfirm2 = new JButton("5");
btnConfirm3 = new JButton("6");
btnInput1 = new JButton("7");
btnInput2 = new JButton("8");
btnInput3 = new JButton("9");
addMessageListeners();
addConfirmListeners();
addInputListeners ();
// Розташування кнопок
contents.add(btnMessage1);//1
contents.add(btnMessage2);//2
contents.add(btnMessage3);//3
contents.add(btnConfirm1);//4
contents.add(btnConfirm2);//5
contents.add(btnConfirm3);//6
contents.add(btnInput1); //7
contents.add(btnInput2); //8
contents.add(btnInput3); //9
setContentPane(contents);
setSize(430, 60); // Задати розміри вікна
setVisible(true); // Зробити вікно видимим
}
// Спостерігачі подій натискання кнопок
private void addMessageListeners() // на вікнах повідомлень
{ btnMessage1.addActionListener(new ActionListener()//1
{ public void actionPerformed(ActionEvent e)
{ JOptionPane.showMessageDialog(Work.this,
"
Повідомлення кодом HTML
"+
"MessageDialog з 2 параметрами");
}
});
btnMessage2.addActionListener(new ActionListener()//2
{ public void actionPerformed(ActionEvent e)
{ JOptionPane.showMessageDialog
( Work.this,
new String[] {"Повідомлення з масиву рядків :",
"MessageDialog з 4 параметрами"},
TITLE_message, JOptionPane.ERROR_MESSAGE);
}
});
btnMessage3.addActionListener(new ActionListener()//3
{ public void actionPerformed(ActionEvent e)
{ JOptionPane.showMessageDialog
( Work.this,"Використання зображення у вікні:\n"
+"повідомлення MessageDialog з 5 параметрами",
TITLE_message, JOptionPane.INFORMATION_MESSAGE, icon);
}
});
}
private void addConfirmListeners()// на вікнах підтвердження
{ btnConfirm1.addActionListener(new ActionListener()//4
{ public void actionPerformed(ActionEvent e)
{ // 4 параметри
int result = JOptionPane.showConfirmDialog
( Work.this, "Готові навчатися самостійно?", TITLE_confirm,
JOptionPane.YES_NO_CANCEL_OPTION);
// 2 параметри
if (result == JOptionPane.YES_OPTION)
JOptionPane.showConfirmDialog(Work.this,"Справді готові?");
else if (result == JOptionPane.NO_OPTION )
JOptionPane.showConfirmDialog(Work.this,"Справді неготові?");
}
});
btnConfirm2.addActionListener(new ActionListener()//5
{ public void actionPerformed(ActionEvent e)
{ int result = JOptionPane.showConfirmDialog
( Work.this,"Продовжити роботу програми?",TITLE_confirm,
JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);
if (result == JOptionPane.NO_OPTION ) {System.exit(0);}
}
});
btnConfirm3.addActionListener(new ActionListener()//6
{ public void actionPerformed(ActionEvent e)
{ JOptionPane.showConfirmDialog( Work.this, "Вам подобається значок ліворуч?",
TITLE_confirm,JOptionPane.YES_NO_OPTION,JOptionPane.ERROR_MESSAGE, icon);
}
});
}
private void addInputListeners()// на вікнах з вибором
{ btnInput1.addActionListener(new ActionListener()//7
{ public void actionPerformed(ActionEvent e)
{ String result = JOptionPane.showInputDialog
(Work.this,"Ведіть рядок тексту");
JOptionPane.showInputDialog(Work.this, "Ви ввели", result);
}
});
btnInput2.addActionListener(new ActionListener()//8
{ public void actionPerformed(ActionEvent e)
{ JOptionPane.showInputDialog(Work.this,
new String[] {"Хибний пароль!", "Введіть правильний пароль :"},
"Авторизація",JOptionPane.WARNING_MESSAGE);
}
});
btnInput3.addActionListener(new ActionListener()//9
{ public void actionPerformed(ActionEvent e)
{ Object result = JOptionPane.showInputDialog
(Work.this,"Виберіть найстаровинніше місто :","Історія міст",
JOptionPane.QUESTION_MESSAGE, icon, town, town[0]);
JOptionPane.showMessageDialog(Work.this, "Ви вибрали місто "+result);
}
});
}
public static void main(String[] args) {new Work();}
}