Anda di halaman 1dari 9

1

PERTEMUAN 2 GUI (Graphical User Interface) SWING COMPONENT (JFrame dan JPanel)
1. Tujuan Mengetahui dan Mengenal JFrame sebagai salah satu Top Level Container Swing. Mengetahui method-method yang digunakan pada JFrame. Mengetahui dan Mengenal cara penggunaan JPanel. 2. Defenisi. Graphical User Interface (GUI) merupakan interface grafis suatu aplikasi yang memfasilitasi interaksi antara pengguna dengan program. Java memiliki komponen untuk membangun GUI. Salah satu komponen tersebut adalah Swing. Komponen Swing didefinisikan dalam paket javax.swing. Swing merupakan komponen GUI yang diturunkan dari Abstract Windowing Toolkit dalam paket java.awt. 3. java awt package AWT (Abstract Windowing Toolkit) : Menyediakan komponen dasar GUI yang digunakan didalam aplikasi-aplikasi java dan applets. Mengandung kelas kelas yang dapat di jadikan sebagai kelas induk dalam konsep pewarisan (inherited). Menjamin bahwa tiap komponen GUI yang akan ditampilkan di layar merupakan sebuah subclass dari komponen class abstrak. Memiliki Container, yang mana merupakan sebuah komponen dari abstrak subclass, yang terdiri dari dua sublcass : Panel Window

4. Containers AWT dan Swing

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

Berikut gambar yang menunjukkan hirarki komponen Swing :

JComponent adalah superclass dari semua komponen Swing. Sebagian besar fungsionalitas komponen diturunkan dari superclass ini. Fungsionalitas tersebut meliputi : 1. pluggable look dan feel; 2. shortcut keys (mnemonics), akses langsung ke komponen melalui keyboard; 3. event handling, penanganan suatu event; 4. tool tips, teks deskripsi yang muncul ketika mouse berada di atasnya.

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

3 5. JFrame
Hierarchy JFrame :

JFrame Constructor JFrame() JFrame(GraphicsConfiguration gc) JFrame(String title) JFrame(String title, GraphicsConfiguration gc) Method Summary : Method Summary

Constructs a new frame that is initially invisible. Creates a Frame in the specified GraphicsConfiguration of a screen device and a blank title Creates a new, initially invisible Frame with the specified title. Creates a JFrame with the specified title and the specified GraphicsConfiguration of a screen device.

protected void addImpl(Component comp, Object constraints, int index) By default, children may not be added directly to this component, they must be added to its contentPane instead. protected createRootPane() JRootPane protected void frameInit() AccessibleContext getAccessibleContext() Container getContentPane() int getDefaultCloseOperation() a "close" on this frame. Component getGlassPane() JMenuBar getJMenuBar() JLayeredPane getLayeredPane() JRootPane getRootPane() Called by the constructor methods to create the default rootPane.

Called by the constructors to init the JFrame properly. Gets the AccessibleContext associated with this JFrame. Returns the contentPane object for this frame. Returns the operation that occurs when the user initiates

Returns the glassPane object for this frame. Returns the menubar set on this frame. Returns the layeredPane object for this frame. Returns the rootPane object for this frame.

static boolean isDefaultLookAndFeelDecorated() Returns true if newly created JFrames should have their Window decorations provided by the current look and feel. protected boolean isRootPaneCheckingEnabled() exception to be thrown. protected String paramString() Returns whether calls to add and setLayout cause an

Returns a string representation of this JFrame. Processes window events occurring on this

protected void processWindowEvent(WindowEvent e) component. void remove(Component comp) void setContentPane(Container contentPane) void setDefaultCloseOperation(int operation)

Removes the specified component from this container. Sets the contentPane property. Sets the operation that will happen by

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

4
default when the user initiates a "close" on this frame. static void setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated) Provides a hint as to whether or not newly created JFrames should have their Window decorations (such as borders, widgets to close the window, title...) provided by the current look and feel. void setGlassPane(Component glassPane) void setJMenuBar(JMenuBar menubar) Sets the glassPane property. Sets the menubar for this frame. Sets the layeredPane property.

void setLayeredPane(JLayeredPane layeredPane)

void setLayout(LayoutManager manager) By default the layout of this component may not be set, the layout of its contentPane should be set instead. protected void setRootPane(JRootPane root) Sets the rootPane property. Determines whether calls to add and protected void setRootPaneCheckingEnabled(boolean enabled) setLayout will cause an exception to be thrown. void update(Graphics g) Just calls paint(g).

Langkah sederhana Membuat Objek Frame dari class JFrame : 1. Import package swing dengan perintah import javax.swing.*; 2. Buat Sebuah Object Frame dari class JFrame. 3. Set Title Object Frame. Bisa menggunakan konstruktor, atau dengan method setTitle(). 4. Setting ukuran object dengan method setSize(). 5. Tampilkan Frame dengan memberi nilai true untuk method setVisible(). 6. Setting DefaultCloseOperation. Latihan 1. Membuat Object Frame Sederhana :

//Contoh1JFrame.java
1 import javax.swing.JFrame; 2 3 public class Contoh1JFrame { 4 5 void getFrame(){ 6 JFrame f;// new JFrame(); 7 f= new JFrame(); 8 f.setTitle("Frame pertamaku"); 9 f.setSize(500, 600); 10 f.setVisible(true); 11 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 12 } 13 }

//Tester1JFrame.java
1 public class Tester1JFrame { 2 public static void main(String[]args) { 3 Contoh1JFrame obj = new Contoh1JFrame(); 4 obj.getFrame(); 5 } 6 }

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

5
Output :

Output Frame yang dihasilkan diatas sebenarnya terdiri dari 4 lapisan :

Secara sederhana dapat dikatakan bahwa : 1. JGlassPane merupakan lapisan yang defaultnya hidden(tersembunyi). Berfungsi untuk melukis/drawing diatas frame. Demo GlassPane 2. JContentPane dan JMenuBar terletak tepat diatas JLayeredPane. Fungsi JContentPane adalah tempat meletakkan/menambah komponen-komponen diatas Frame (misalnya menambah JText, JLabel, dsb.) Fungsi dari JMenuBar adalah tempat meletakkan/menampilkan Menu. Beberapa method yang sering digunakan dalam membuat Object JFrame. No Nama Method Keterangan 1 setTitle(String title) Setting Title 2 setSize(int width, int height) Setting Ukuran object 3 setVisible(boolean b) Menampilkan object 4 setBounds(int x, int y, int width, int height) Setting letak dan Ukuran Object 5 setBackground(Color c) Setting warna 6 setResizable(boolean b); Setting bisa/tidak merubah ukuran 7 setDefaultCloseOperation(int operation) 8 setLayout(LayoutManager manager) By default the layout of this component may not be set, the layout of its contentPane should be set instead. 9 pack() Causes this Window to be sized to fit the preferred size and layouts of its subcomponents.

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

6
Latihan 2. Contoh Penggunaan method setBackground(), setBounds(), dan setResizable().

//Contoh2JFrame.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 import java.awt.Color; import javax.swing.JFrame; public class Contoh2JFrame { void tampilFrame(String judulFrame){ JFrame fr; fr=new JFrame(judulFrame); fr.getContentPane().setBackground(Color.red); fr.setBounds(100, 100, 300, 200); fr.setResizable(false); fr.setVisible(true); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

//Tester2JFrame.java
1 public class Tester2JFrame { 2 public static void main(String[]args) { 3 Contoh2JFrame obj = new Contoh2JFrame(); 4 obj.tampilFrame("Frame keduaku"); 5 } 6 } Output :

6. JPanel.
Kelas JPanel diturunkan dari JComponent. Setiap JPanel adalah Container. Pada JPanel dapat ditambahkan beberapa komponen atau panel lain. Untuk menambah komponen atau panel lain, digunakan method add(). Ukuran area JPanel diukur berdasarkan komponen yang dicakupnya dan terus berkembang untuk mengakomodasi komponen yang ditambahkan padanya. Secara sederhana, Jpanel dapat berfungsi sebagai : Menyediakan sebuah space/ruangan untuk componen. Mengizinkan subpanels memiliki layout manager sendiri. Menambah componen dengan add() method

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

7
Hierarchy JPanel terlihat sebagaimana gambar dibawah ini :

JPanel Constructor Summary JPanel() Creates a new JPanel with a double buffer and a flow layout. Creates a new JPanel with FlowLayout and the specified buffering JPanel(boolean isDoubleBuffered) strategy. JPanel(LayoutManager layout)

Create a new buffered JPanel with the specified layout manager

JPanel(LayoutManager layout, boolean isDoubleBuffered) Creates a new JPanel with the specified layout manager and buffering strategy. Method Summary AccessibleContext getAccessibleContext() PanelUI getUI() Gets the AccessibleContext associated with this JPanel. Returns the look and feel (L&F) object that renders this component.

String getUIClassID() Returns a string that specifies the name of the L&F class that renders this component. protected String paramString() Returns a string representation of this JPanel. void setUI(PanelUI ui) Sets the look and feel (L&F) object that renders this component. void updateUI() Resets the UI property with a value from the current look and feel. Untuk lebih memahani penggunaan JPanel, kerjakan dan pahami source dibawah ini :

//Contoh1JPanel.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; public class Contoh1JPanel { private JFrame fr; private JPanel pnlSatu,pnlDua; void createFrame(){ fr=new JFrame("JFrame dan JPanel"); fr.setLayout(null); fr.setBounds(100, 100, 300, 200); fr.setVisible(true); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void createPanelSatu() { pnlSatu = new JPanel(); pnlSatu.setBackground(Color.red); pnlSatu.setBounds(0, 0, 300, 100); }

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

8
20 21 22 23 24 25 26 27 28 29 30 31 } void createPanelDua() { pnlDua = new JPanel(); pnlDua.setBackground(Color.white); pnlDua.setBounds(0, 100, 300, 100); } void addPanelSatuToFrame(){ fr.getContentPane().add(pnlSatu); } void addPanelDuaToFrame(){ fr.getContentPane().add(pnlDua); }

//Tester1JPanel.java
1 public class Tester1JPanel { 2 public static void main(String[]args){ 3 Contoh1JPanel obj = new Contoh1JPanel(); 4 obj.createFrame(); 5 obj.createPanelSatu(); 6 obj.createPanelDua(); 7 obj.addPanelSatuToFrame(); 8 obj.addPanelDuaToFrame(); 9 } 10 } Output :

Tugas : 1. Ubah source diatas sehingga tampilan menjadi seperti gambar dibawah ini :

2.

Ubah source diatas, tambahkan sebuah panel berwarna hijau, dan letakkan setelah panel berwarna putih. Sehingga tampilannya seperti gambar dibawah ini.

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012

TUGAS DIRUMAH: Susunlah sembilan panel pada sebuah frame berukuran 300 x 300, dengan susunan sebagaimana ditunjukkan pada gambar dibawah ini :

Mata Kuliah : OOP II (Pertemuan ke-2) Dosen Pengasuh : Surya Syahrani STMIK AMIK RIAU PEKANBARU 2012