PL 10 Gui
PL 10 Gui
3. Java GUI
Pemrograman Lanjut PTIIK UB
Dosen: Herman Tolle
//5. Show it
frame.setVisible(true);
FrameBeraksi.java
public class FrameBeraksi {
public static void main(String[] args){
JFrame frame = new JFrame("Frame Beraksi");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,200);
frame.setVisible(true);
}
}
FrameBeraksi2.java
import javax.swing.*;
class CardLayoutBeraksi{
public static void main(String[] args){
JFrame frame = new JFrame("Card Layout Beraksi");
JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel();
JButton button = new JButton("Button dalam panel ke 1");
JT tA t t JT tA ("T t d l l k 2")
JTextArea text = new JTextArea("Text dalam panel ke 2");
panel1.add(button); panel2.add(text);
JTabbedPane tab = new JTabbedPane();
tab.add(panel1, "Tab 1"); tab.add(panel2, "Tab 2");
frame.getContentPane().add(tab,BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack(); frame.setVisible(true);
}
}
3.3 Penanganan Kejadian
(Event Handling)
Event
1. Event adalah kejadian atau peristiwa yang
dilakukan oleh user terhadap user interface
menggunakan peralatan mouse dan keyboard
2. Setiap objek dapat dinotifikasi jika suatu event
terjadi sehingga objek tersebut dapat memutuskan
apa yang harus dilakukan untuk menanggapi
(menangani) event tersebut (event handling)
3. Agar suatu objek dapat dinotifikasi tentang suatu
event, objek harus mendaftarkan diri sebagai event
listener ke sumber yg menghasilkan event, dan
mengimplementasikan interface listener yg sesuai
Proses Penanganan Event (Kejadian)
1. Komponen harus didaftarkan sebagai pendengar (listener) dg
menggunakan method addXXXListener()
JButton tombolSelesai = new JButton(Selesai);
tombolSelesai.addActionListener(this);
2. Meng-implementasi interface listener atau meng-extends class
adapter (bisa juga dengan membuat inner class)
1. class HelloGUI implements MouseListener{}
2. class HelloGUI extends MouseAdapter{} atau
class HelloGUI extends JFrame{ class handler extends MouseAdapter{}}
3. Menuliskan code penangan event pada method handler
MouseAdapter{
public void mouseClicked(MouseEvent e){
//code penangan kejadian
}
}
Listener Yang Sering Digunakan
Kategori Interface Method
Listener
Action
Yang Banyak
ActionListener
Dipakai
actionPerformed(ActionEvent)
Item ItemListener itemStateChanged(ItemEvent)
Mouse MouseListener mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
Mouse Motion MouseMotionListener mouseDragged(MouseEvent)
mouseMoved(MouseEvent)
Key KeyListener keyPressed(KeyEvent)
keyReleased(KeyEvent)
keyTyped(KeyEvent
Focus FocusListener focusGained(FocusEvent)
focusLost(FocusEvent)
Window WindowListener windowClosing(Windowevent)
windowOpened(Windowevent)
windowActived(Windowevent)
windowDeactived(Windowevent)
Daftar Listener Lengkap
Listener (Semua Komponen Swing)
Listener Deskripsi
AncestorListener ancestorAdded(AncestorEvent)
ancestorMoved(AncestorEvent)
ancestorRemoved(AncestorEvent)
CaretListener caretUpdate(CaretEvent)
CellEditorListener editingStopped(ChangeEvent)
editingCanceled(ChangeEvent)
ChangeListener stateChanged(ChangeEvent)
ComponentListener componentHidden(ComponentEvent)
ComponentAdapter componentMoved(ComponentEvent)
componentResized(ComponentEvent)
componentShown(ComponentEvent
ContainerListener componentAdded(ContainerEvent)
ContainerAdapter componentRemoved(ContainerEvent)
DocumentListener changedUpdate(DocumentEvent)
insertUpdate(DocumentEvent)
removeUpdate(DocumentEvent)
ExceptionListener exceptionThrown(Exception)
Listener API Table -2-
Listener or Adapter Listener Method Deskripsi
FocusListener focusGained(FocusEvent)
FocusAdapter focusLost(FocusEvent)
HierarchyBoundsListener ancestorMoved(HierarchyEvent)
HierarchyBoundsAdapter ancestorResized(HierarchyEvent)
HierarchyListener hierarchyChanged(HierarchyEvent)
HyperlinkListener hyperlinkUpdate(HyperlinkEvent)
InputMethodListener caretPositionChanged(InputMethodEvent)
inputMethodTextChanged(InputMethodEvent)
InternalFrameListener internalFrameActivated(InternalFrameEvent)
InternalFrameAdapter internalFrameClosed(InternalFrameEvent)
internalFrameClosing(InternalFrameEvent)
internalFrameDeactivated(InternalFrameEvent)
internalFrameDeiconified(InternalFrameEvent)
internalFrameIconified(InternalFrameEvent)
internalFrameOpened(InternalFrameEvent)
ItemListener itemStateChanged(ItemEvent)
KeyListener keyPressed(KeyEvent)
KeyAdapter keyReleased(KeyEvent)
keyTyped(KeyEvent
Listener API Table -3-
Listener or Adapter Listener Method Deskripsi
ListDataListener contentsChanged(ListDataEvent)
intervalAdded(ListDataEvent)
intervalRemoved(ListDataEvent)
ListSelectionListener valueChanged(ListSelectionEvent)
MenuDragMouseList menuDragMouseDragged(MenuDragMouseEvent)
ener menuDragMouseEntered(MenuDragMouseEvent)
menuDragMouseExited(MenuDragMouseEvent)
menuDragMouseReleased(MenuDragMouseEvent)
MenuKeyListener menuKeyPressed(MenuKeyEvent)
menuKeyReleased(MenuKeyEvent)
menuKeyTyped(MenuKeyEvent)
MenuListener menuCanceled(MenuEvent)
menuDeselected(MenuEvent)
menuSelected(MenuEvent)
Listener API Table -4-
Listener or Adapter Listener Method Deskripsi
MouseListener mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
MouseMotionListener mouseDragged(MouseEvent)
MouseMotionAdapter, mouseMoved(MouseEvent)
MouseInputAdapter
MouseWheelListener popupMenuCanceled(PopupMenuEvent)
MouseAdapter popupMenuWillBecomeInvisible(PopupMenuEven
t)
popupMenuWillBecomeVisible(PopupMenuEvent)
PropertyChangeListener propertyChange(PropertyChangeEvent)
TableColumnModelListener columnAdded(TableColumnModelEvent)
columnMoved(TableColumnModelEvent)
columnRemoved(TableColumnModelEvent)
columnMarginChanged(ChangeEvent)
columnSelectionChanged(ListSelectionEvent)
Membangun Aplikasi GUI
dengan Netbeans
The Palette
The Design Area
The Source Editor
The Property Editor
The Inspector
3.4 Studi Kasus Membangun
Aplikasi GUI
Studi Kasus Aplikasi GUI
JTextField1: Kosongi
JLabel1: Celcius
JLabel2: Fahrenheit
JButton1: Convert
5. Mengubah Nama Variable dari
Setiap GUI Component (Change
Variable Name)
JTextField1: celciusTextField
JLabel1: celciusLabel
JLabel2: fahrenheitLabel
JButton1: convertButton
6. Rapikan Tampilan Frame
Program Kita (Potong Yang Tidak
Perlu)
7. Buat Event untuk Convert
Button
panggil method
class dan method baru
Aplikasi Penghitungan Jumlah Hari
Error Dialog:
1. Error dialog muncul bila input nilai
bukan numerik (digit)
2. Error dialog muncul bila isian
kosong
Ganti TextField menjadi ComboBox
Aplikasi Penampil Gambar
dengan Button
Fitur Tambahan:
1. Error dialog muncul ketika input
nilai bukan numerik, nilai tidak
antara 0-100, atau isian kosong
2. Konfirmasi ketika keluar aplikasi
Aplikasi Kalkulator
if(yaTebal.getText().equals(Ya)){
hasilTextArea.setFont(tebal);
}else{
hasilTextArea.setFont(tipis);
}
Aplikasi Biodata Mahasiswa