Anda di halaman 1dari 8

Tugas Personal ke-2

(Minggu 7 / Sesi 11)

Esai
1. Jelaskan mengenai 3 jenis layout manager dan berikan contoh penggunaannya dalam
bahasa pemrograman Java (jangan menggunakan contoh yang disediakan pada slide
materi ataupun copy-paste dari internet).
2. Jelaskan mengenai KeyListener dan MouseListener, beserta contoh kegunaannya
(masing-masing 3).

Kasus
Buatlah penggalan kode untuk menampilkan Graphical User Interface seperti gambar
dibawah dan lakukan validasi apabila tombol submit ditekan dan isi texfield nama memiliki
panjang kurang dari 6 karakter. Tampilkan pesan error nya dengan message dialog.

COMP6125-Advanced Object Oriented Programming


Jawaban

1. layout manager bertugas menyusun komponen-komponen(button, label, checkbox, dll) di


dalam suatu container (panel, frame, dll). Layout manager menentukan posisi danukuran
setiap komponen di dalam container. Proses ini akan berbeda untuk setiap class layout yang
digunakan. Macam-macam layout manager :

1. FlowLayout menyusun komponen berdasarkan ukuran defaultmasing-masing, dengan


posisi mulai dari kiri ke kanan dan dari atas ke bawah di dalam container yang
digunakan. FlowLayout dapat memiliki “row justification”: LEFT, CENTER, atau RIGHT
serta “padding” horizontal/vertical

Contoh:

JPanel panel1 = new JPanel();panel1.setLayout(new FlowLayout());

2. GridLayout menempatkan komponen dalam bentuk “rectangular grid”. Ada 3


constructor untuk GridLayout:

 GridLayout(): membuat layout dengan satu kolom per komponen. Hanya satu baris
yang digunakan.

 GridLayout(int rows, int cols): membuat suatu layout berdasarkan jumlah baris dan
kolom yang diinginkan.

 GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan
jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun
vertical untuk setiap baris dan kolom tersebut.

Contoh :
frame.add(panel1);
frame.add(panel2);
frame.setLayout(new GridLayout(2, 1));

3. BorderLayout menyusun komponen berdasarkan lokasi geografis: NORTH, SOUTH,


EAST, WEST, and CENTER.  Secara optional, kita dapat juga memberikan
paddingdi antara komponen.  BorderLayout merupakan layout default untuk
JWindowdan JFrame.  Karena setiap komponen diasosiasikan dengan suatu
arah geografis, akibatnya layout ini hanya dapat menangani maksimal 5 komponen.
Contoh :
frame.setLayout(new BorderLayout( ));
frame.add(new JButton("Button1"), BorderLayout.NORTH );
frame.add(new JButton("Button2"), BorderLayout.SOUTH );

COMP6125-Advanced Object Oriented Programming


2. Key Event dan Mouse Listener
 Key Event
Key Event merupakan event yang dilakukan pada saat memberikan aksi melalui
keyboard sepertishortcut pada aplikasi yang sering digunakan seperti alt+f4 untuk
exit, ctrl+c untuk copy, dan yang lainnya. Key Event yang bisa terjadi pada Java ada 3
event pada keyboard yaitu pada saat pressed, released, dan typed terhadap
komponen. Berikut ini 3 fungsi handler pada KeyListener, yaitu:
1. keyPressed(KeyEvent e)
Dipanggil ketika sebuah tombol keybord ditekan
2. keyReleased(KeyEvent e)
Dipanggil ketika sebuah tombol keybord dilepas
3. keyTyped(KeyEvent e)
Dipanggil ketika sebuah tombol keybord ditekan dan kemudian dilepas

Contoh :

package keylistenerexample;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class KeyListenerExample extends JFrame implements KeyListener {

private String str;


private JLabel label;
private Font font;

public KeyListenerExample() {

font = new Font("Tahoma", Font.BOLD, 30);


label = new JLabel("", JLabel.CENTER);
label.setFont(font);
label.setForeground(Color.BLUE);
label.setHorizontalAlignment(SwingConstants.CENTER);

Container container = getContentPane();


container.setBackground(Color.YELLOW);
container.add(label, BorderLayout.CENTER);

addKeyListener(this);
}

// Deklarasi Method keyPressed


public void keyPressed(KeyEvent ke) {

COMP6125-Advanced Object Oriented Programming


str = ke.getKeyText(ke.getKeyCode());
label.setText(str);
}

// Deklarasi method keyReleased


public void keyReleased(KeyEvent ke) {

// Deklarasi method keyTyped


public void keyTyped(KeyEvent ke) {

str = Character.toString(ke.getKeyChar());
label.setText(str);
}

public static void main(String[] args) {

KeyListenerExample frame = new KeyListenerExample();


frame.setTitle("Kelas DemoKeyEvent");
frame.setSize(280, 120);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

 Mouse Listener
Mouse Event merupakan salah satu event yang terjadi karena adanya perintah dari
mouse kita. Perintahnya dari mouse yaitu clicked, dragged, entered. exited, pressed,
dan released. Objek dari mouse event akan mendapatkan angka mengenai lokasi x
dan y dari lokasi mouse berada.
Terdapat 2 buah listener dalam melakukan mouse event, yaitu:
1. Mouse Listener -> pressed, released, entered, exited, or clicked
2. Mouse Motion Listener -> dragged and moved

COMP6125-Advanced Object Oriented Programming


Contoh :
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package mouseeventlistener;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MouseEventListener extends JFrame {

private Font font;


private JLabel label;

public MouseEventListener() {

Container container = getContentPane();


container.setLayout(new BorderLayout());

Jendela jendela = new Jendela();


jendela.setBackground(Color.WHITE);
container.add(jendela, BorderLayout.CENTER);

font = new Font("Tahoma", Font.BOLD, 14);


label = new JLabel("Pointer berada di luar area.");
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(font);
label.setForeground(Color.BLUE);
container.add(label, BorderLayout.PAGE_END);
}

class Jendela extends JPanel implements MouseListener {

public Jendela() {
addMouseListener(this);
}

public void mousePressed(MouseEvent e) {


this.setBackground(Color.RED);
label.setText("Mouse has Pressed");

COMP6125-Advanced Object Oriented Programming


}

public void mouseReleased(MouseEvent e) {


}

public void mouseClicked(MouseEvent e) {


this.setBackground(Color.WHITE);
label.setText("Mouse has clicked");
}

public void mouseEntered(MouseEvent e) {

this.setBackground(Color.BLUE);
label.setText("The pointer is inside the frame");
}

// Deklarasi ulang metoda mouseExited


public void mouseExited(MouseEvent e) {

this.setBackground(Color.GREEN);
label.setText("The pointer is outside the frame.");
}
}

public static void main(String[] args) {


MouseEventListener frame = new MouseEventListener();
frame.setTitle("Mouse Evnet Listener");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
}

Jawaban Soal Kasus

package tugaspersonal2;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
*
* @author DwiArif
*/

COMP6125-Advanced Object Oriented Programming


public class TugasPersonal2 extends JFrame implements ActionListener {

private JTextField jTextField;


private JButton jButton;

public TugasPersonal2(){
setTitle("Tugas Personal 2");
setSize(800, 100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
userInterface();
setVisible(true);
}

private void userInterface(){


JPanel jp = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 10));

jTextField = new JTextField();


jTextField.setPreferredSize(new Dimension(200, 30));
jp.add(jTextField);

jButton = new JButton("Submit");


jButton.addActionListener(this);
jp.add(jButton);

getContentPane().add(jp);

public void actionPerformed(ActionEvent e) {


if(e.getSource()==jButton){
if(jTextField.getText().length() <= 5){
JOptionPane.showMessageDialog(null, "Nama Minimal 6 Karakter");
} else {
JOptionPane.showMessageDialog(null,"Nama yang dimasukkan adalah " +
jTextField.getText());
}
}

COMP6125-Advanced Object Oriented Programming


}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
TugasPersonal2 obj = new TugasPersonal2();

}
}

Output :
 Validasi nama minimasl 6 Karakter

 Nama inputan lebih dari 6 karakter

COMP6125-Advanced Object Oriented Programming

Anda mungkin juga menyukai