![Page 1: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/1.jpg)
Pengantar GUI:Pengantar GUI:Frames, Simple Components, Frames, Simple Components,
dan Layoutsdan Layouts
minggu 12minggu 12
![Page 2: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/2.jpg)
22
Objectives (Sasaran)Objectives (Sasaran)
• Untuk mengenal komponen GUI sederhana• Untuk menjelaskan hierarki Java GUI API• Untuk membuat tampilan bagi user menggunakan
frames, panels, dan komponen GUI sederhana• Untuk memahami aturan penggunaan layout
managers• Untuk menggunakan FlowLayout, GridLayout, dan
BorderLayout managers dalam mengatur layout components di dalam container
• Untuk mengatur warna (colors) dan tampilan (font) menggunakan class Color dan Font
• Untuk menggunakan JPanel di subcontainers22
![Page 3: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/3.jpg)
Elemen-Elemen Program Elemen-Elemen Program GUI ProgrammingGUI Programming
ComponentsComponents Object visual yang muncul ke screenObject visual yang muncul ke screen
LayoutsLayouts Mengatur posisi components di dalam Mengatur posisi components di dalam
containercontainer EventsEvents
Merespon aksi yang dilakukan userMerespon aksi yang dilakukan user GraphicsGraphics
Lines, shapes, colors, fonts, etc.Lines, shapes, colors, fonts, etc.
Semuanya terenkapsulasi di Java Classes dan Packages
![Page 4: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/4.jpg)
ComponentsComponentsDua kategori dari Java Component classes:Dua kategori dari Java Component classes:
AWT – Abstract Windows Toolkit (AWT – Abstract Windows Toolkit (java.awt packagejava.awt package)) Versi awal dari komponen GUIVersi awal dari komponen GUI Bergantung pada “peer architecture”… tampilan dilakukan Bergantung pada “peer architecture”… tampilan dilakukan
oleh platform OS dimana aplikasi / aplet dijalankanoleh platform OS dimana aplikasi / aplet dijalankan Bersifat “heavy-weight”Bersifat “heavy-weight”
SwingSwing ((javax.swing packagejavax.swing package)) Versi yang lebih baruVersi yang lebih baru Bukan “peer architecture”…components menampilkan Bukan “peer architecture”…components menampilkan
secara independen, tidak tergantug OSsecara independen, tidak tergantug OS Bersifat “lightweight”Bersifat “lightweight”
The textbook focuses primarily on Swing classes
![Page 5: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/5.jpg)
55
Swing vs. AWTSo why do the GUI component classes have a prefix J? Instead of JButton, why not name it simply Button? In fact, there is a class already named Button in the java.awt package.
When Java was introduced, the GUI classes were bundled in a library known as the Abstract Windows Toolkit (AWT). For every platform on which Java runs, the AWT components are automatically mapped to the platform-specific components through their respective agents, known as peers. AWT is fine for developing simple graphical user interfaces, but not for developing comprehensive GUI projects. Besides, AWT is prone to platform-specific bugs because its peer-based approach relies heavily on the underlying platform. With the release of Java 2, the AWT user-interface components were replaced by a more robust, versatile, and flexible library known as Swing components. Swing components are painted directly on canvases using Java code, except for components that are subclasses of java.awt.Window or java.awt.Panel, which must be drawn using native GUI on a specific platform. Swing components are less dependent on the target platform and use less of the native GUI resource. For this reason, Swing components that don’t rely on native GUI are referred to as lightweight components, and AWT components are referred to as heavyweight components.
![Page 6: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/6.jpg)
GUI Class Hierarchy (AWT)GUI Class Hierarchy (AWT)
![Page 7: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/7.jpg)
GUI Class Hierarchy (Swing)GUI Class Hierarchy (Swing)
![Page 8: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/8.jpg)
Container ClassesContainer Classes
Container classes can contain other GUI components.
![Page 9: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/9.jpg)
GUI Helper ClassesGUI Helper Classes
The helper classes are not subclasses of Component. They are used to describe the properties of GUI components such as graphics context, colors, fonts, and dimension.
![Page 10: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/10.jpg)
Swing GUI Components Swing GUI Components
![Page 11: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/11.jpg)
Membuat GUI ObjectsMembuat GUI Objects// Membuat button (tombol) dengan teks OK // Membuat button (tombol) dengan teks OK JButton jbtOK = new JButton("OK"); JButton jbtOK = new JButton("OK"); // Membuat label dengan teks "Enter your name: "// Membuat label dengan teks "Enter your name: "JLabel jlblName = new JLabel("Enter your name: "); JLabel jlblName = new JLabel("Enter your name: ");
// Membuat text field dengan teks "Type Name Here"// Membuat text field dengan teks "Type Name Here"JTextField jtfName = new JTextField("Type Name Here"); JTextField jtfName = new JTextField("Type Name Here"); // Membuat check box dengan teks bold// Membuat check box dengan teks boldJCheckBox jchkBold = new JCheckBox("Bold"); JCheckBox jchkBold = new JCheckBox("Bold"); // Membuat radio button dengan teks red// Membuat radio button dengan teks redJRadioButton jrbRed = new JRadioButton("Red"); JRadioButton jrbRed = new JRadioButton("Red"); // Membuat combo box dengan pilihan red, green, and blue// Membuat combo box dengan pilihan red, green, and blueJComboBox jcboColor = new JComboBox(new String[]{"Red", JComboBox jcboColor = new JComboBox(new String[]{"Red", "Green", "Blue"}); "Green", "Blue"});
Button
Label Text field
Check Box
Radio Button
Combo Box
![Page 12: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/12.jpg)
FramesFrames Frame adalah window yang Frame adalah window yang independen dan merupakan independen dan merupakan window terluar.window terluar.
Frame menjadi dasar untuk Frame menjadi dasar untuk meletakkan komponen lain di meletakkan komponen lain di aplikasi GUI aplikasi GUI
Class Frame bisa digunakan Class Frame bisa digunakan untuk membuat windowsuntuk membuat windows
![Page 13: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/13.jpg)
Penggunaan setiap jenis class Swing memerlukan import package javax.swing
Instansiasi object swing bertipe Frame
Memanggil method-method di JFrame untuk mengatur tampilan dan tingkah laku JFrame
Listing 12.1 p404Membuat FrameMembuat Frame
![Page 14: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/14.jpg)
Listing 12.1 p404
Mengatur lebar dan tinggi frame dalam ukuran pixels
Membuat FrameMembuat Frame
![Page 15: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/15.jpg)
Listing 12.1 p404
Mengatur frame agar terletak di tengah screen ketika ditampilkan
Membuat FrameMembuat Frame
![Page 16: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/16.jpg)
Listing 12.1 p404
Ketika user menutup window, aplikasi akan dihentikan
Membuat FrameMembuat Frame
![Page 17: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/17.jpg)
Listing 12.1 p404
Baris ini digunakan untuk menampilkan frame di screen
Membuat FrameMembuat Frame
![Page 18: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/18.jpg)
Ini adalah bagaimana frame akan terlihat.
Perhatikan title bar, content area, minimize, maximize/restore, dan close icons.
Caption di title bar ditentukan oleh argumen di constructor
![Page 19: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/19.jpg)
Frames dengan Frames dengan ComponentsComponents
Frame adalah container. Oleh karena itu Frame adalah container. Oleh karena itu frame dapat memiliki components frame dapat memiliki components (seperti buttons, text fields, etc.)(seperti buttons, text fields, etc.)
Components Components ditambahkanditambahkan ke ke content content panepane dari frame dari frame
Content pane adalah area berwarna abu-Content pane adalah area berwarna abu-abu di window Frameabu di window Frame
Cara sederhana untuk menggabarkan Cara sederhana untuk menggabarkan konsep container adalah:konsep container adalah:
JFrame memiliki:JFrame memiliki:1.1. Menu barMenu bar Content paneContent pane
![Page 20: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/20.jpg)
Gambaran konsep Frame Gambaran konsep Frame ContainmentContainment
From: http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html
Actually, there’s more to it than this, but this picture will suffice for now.
![Page 21: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/21.jpg)
2211
Menambahkan Komponen Menambahkan Komponen ke Frameke Frame
// Menambahkan button ke frameframe.getContentPane().add( new JButton("OK"));
Title bar
Content pane
![Page 22: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/22.jpg)
2222
Delegasi Content Pane di Delegasi Content Pane di JDK 1.5JDK 1.5
// Menambahkan button ke frameframe.getContentPane().add( new JButton("OK"));
Title bar
Content pane// Menambahkan button ke frameframe.add( new JButton("OK"));
![Page 23: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/23.jpg)
Menambahkan Komponen Menambahkan Komponen ke Frame (Kode Program)ke Frame (Kode Program)
![Page 24: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/24.jpg)
2244
Class JFrameClass JFrame
![Page 25: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/25.jpg)
Layout ManagersLayout Managers
Mengatur peletakan components di Mengatur peletakan components di container.container.
Ini merupakan alternatif untuk mengatur Ini merupakan alternatif untuk mengatur letak componen secara hardcoding letak componen secara hardcoding dengan presisi pixel.dengan presisi pixel.
Keuntungan: resizing container (frame) Keuntungan: resizing container (frame) tidak akan mengganggu tampilan tidak akan mengganggu tampilan componentscomponents
Layout managers yang sering digunakan:Layout managers yang sering digunakan: FlowLayout, GridLayout, BorderLayout, FlowLayout, GridLayout, BorderLayout,
CardLayout, CardLayout, dandan GridBagLayout GridBagLayout
![Page 26: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/26.jpg)
Hierarki Layout ManagerHierarki Layout Manager
LayoutManager adalah interface. Semua class layout implement interface ini
![Page 27: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/27.jpg)
FlowLayoutFlowLayoutFlowLayoutFlowLayout Meletakkan components secara berurutan dari kiri ke Meletakkan components secara berurutan dari kiri ke
kanan berdasarkan urutan penambahan components kanan berdasarkan urutan penambahan components bersangkutanbersangkutan
Components secara otomatis akan menempati baris Components secara otomatis akan menempati baris baru bila lebar container tidak mencyukupi untuk baru bila lebar container tidak mencyukupi untuk menampung semua components dalam satu barismenampung semua components dalam satu baris
Secara default digunakan oleh applets dan panels, Secara default digunakan oleh applets dan panels, tapi tidak oleh framestapi tidak oleh frames
Pilihan:Pilihan: left, center (ini adalah default), or rightleft, center (ini adalah default), or right
Typical syntax: dalam constructor class FrameTypical syntax: dalam constructor class Frame
setLayout(new FlowLayout(FlowLayout.LEFT)) setLayout(new FlowLayout(FlowLayout.LEFT)) ATAUATAU
setLayout(new setLayout(new FlowLayout(FlowLayout.LEFT,hgap,vgap)) FlowLayout(FlowLayout.LEFT,hgap,vgap))
![Page 28: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/28.jpg)
Class Frame yang menggunakan FlowLayout layout manager
![Page 29: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/29.jpg)
Note: membuat subclass dari JFrame
Class Frame yang menggunakan FlowLayout layout manager
![Page 30: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/30.jpg)
Note: adalah umum untuk membuat Frame dengan menyertakan main method.
Class Frame yang menggunakan FlowLayout layout manager
![Page 31: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/31.jpg)
Constructor akan melakukan hal berikut ini:1) Mengatur layout manager untuk content pane di frame2) Menambahkan components pada content pane di frame
Dalam kasus ini, layout yang digunakan adalah Flow, dan terdapat 6 komponen Swing yang ditambahkan
1
2
Class Frame yang menggunakan FlowLayout layout manager
Swing components berada di java.swing package
Layout managers berada di java.awt package
![Page 32: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/32.jpg)
Resizing frame menyebabkan components pindah ke baris bawahnya.
![Page 33: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/33.jpg)
GridLayoutGridLayoutGridLayoutGridLayout Mengatur komponen dalam susunan baris dan kolomMengatur komponen dalam susunan baris dan kolom Konstruktornya::Konstruktornya::
setLayoutsetLayout
(new GridLayout(rows,columns))(new GridLayout(rows,columns))
ATAUATAU setLayout(new GridLayout(rows,columns,hgap,vgap))setLayout(new GridLayout(rows,columns,hgap,vgap))
Components akan ditambahkan secara terurut dari kiri ke Components akan ditambahkan secara terurut dari kiri ke kanan, baris per bariskanan, baris per baris
Ukuran components semuanya samaUkuran components semuanya sama Jika container di-resized, components juga berubah Jika container di-resized, components juga berubah
ukuran, dan tetap di posisi yang samaukuran, dan tetap di posisi yang sama
![Page 34: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/34.jpg)
Setting layout manager
Menambahkan components
Class Frame yang menggunakan GridLayout layout manager
![Page 35: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/35.jpg)
Resizing frame menyebabkan components berubah pula ukurannya, namun grid pattern-nya tetap
![Page 36: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/36.jpg)
BorderLayoutBorderLayoutBorderLayoutBorderLayout Mengatur components ke lima area: North, South, East, West, dan Mengatur components ke lima area: North, South, East, West, dan
CenterCenter Konstruktor:Konstruktor:
setLayout(new BorderLayout()) setLayout(new BorderLayout()) ATAUATAU
setLayout(new BorderLayout(hgap,vgap))setLayout(new BorderLayout(hgap,vgap)) untuk setiap komponen:untuk setiap komponen:
add (the_component, region)add (the_component, region) setting area yang diinginkan:setting area yang diinginkan:
BorderLayout.EAST, BorderLayout.SOUTH, BorderLayout.WEST, BorderLayout.EAST, BorderLayout.SOUTH, BorderLayout.WEST, BorderLayout.NORTH, atau BorderLayout.CENTERBorderLayout.NORTH, atau BorderLayout.CENTER
Tingkah laku: jika container di-resize, ukuran components juga berubah, Tingkah laku: jika container di-resize, ukuran components juga berubah, namun orientasi letaknya tetap.namun orientasi letaknya tetap.
NOTE: maksimum hanya ada lima components yang bisa ditambah dan NOTE: maksimum hanya ada lima components yang bisa ditambah dan ditampilkan, masing-masing area satu component.ditampilkan, masing-masing area satu component.
![Page 37: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/37.jpg)
Setting layout manager
Menambahkan components ke area yang diinginkan
Class Frame yang menggunakan BorderLayout layout manager
![Page 38: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/38.jpg)
Resizing frame menyebabkan ukuran komponen berubah, namun tetap di area yang sama
NOTE: area CENTER lebih luas dari area lainnya
![Page 39: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/39.jpg)
Menggunakan Panels sebagai Menggunakan Panels sebagai “Sub-Containers”“Sub-Containers”
JPanel adalah component yang dapat berisi JPanel adalah component yang dapat berisi components lainnya.components lainnya.
Sebagai containers, JPanels dapat memiliki layout Sebagai containers, JPanels dapat memiliki layout managers-nya sendiri.managers-nya sendiri.
Dengan ini, kita dapat menggabungkan layout Dengan ini, kita dapat menggabungkan layout dalam frame yang sama dengan menambahkan dalam frame yang sama dengan menambahkan panel ke frame dan dengan menambahkan panel ke frame dan dengan menambahkan components ke panel.components ke panel.
Sehingga, seperti JFrames, kita dapat Sehingga, seperti JFrames, kita dapat menggunakan method berikut bersama JPanels:menggunakan method berikut bersama JPanels: add()add() – menambah components ke panel – menambah components ke panel setLayout()setLayout() – untuk mengasosiasikan layout manager – untuk mengasosiasikan layout manager
pada panelpada panel
![Page 40: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/40.jpg)
Contoh ini menggunakan panels untuk Contoh ini menggunakan panels untuk mengorganisasi components. Program mengorganisasi components. Program membuat tampilan user untuk oven membuat tampilan user untuk oven microwave.microwave.
![Page 41: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/41.jpg)
Class Frame yang mengandung panels untuk mengorganisasi components
![Page 42: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/42.jpg)
Membuat panel dan mengatur layout-nya
Class Frame yang mengandung panels untuk mengorganisasi components
![Page 43: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/43.jpg)
Menambahkan components ke panel
Class Frame yang mengandung panels untuk mengorganisasi components
![Page 44: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/44.jpg)
Membuat panel lain dan mengatur layout-nya…perhatikan bahwa pengaturan layout pada panel dapat dilakukan melalu constructor
Class Frame yang mengandung panels untuk mengorganisasi components
![Page 45: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/45.jpg)
Menambahkan components ke panel kedua
NOTE: panel p1 berada di dalam panel p2!
Class Frame yang mengandung panels untuk mengorganisasi components
![Page 46: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/46.jpg)
Menambahkan panel dan button ke content pane milik frame.
Note: layout manager standard milik JFrame adalah Border, sehingga jika tidak secara eksplisit memanggil method setLayout(), maka frame ini ber-layout Border
Class Frame yang mengandung panels untuk mengorganisasi components
![Page 47: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/47.jpg)
Frame memiliki BorderLayout manager
Button di area CENTERPanel p2 di area EAST
![Page 48: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/48.jpg)
Panel p2 memiliki BorderLayout manager
Panel p1 di area CENTER
Text field di area NORTH
![Page 49: Pengantar GUI: Frames, Simple Components, dan Layouts](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681554f550346895dc31b9a/html5/thumbnails/49.jpg)
Panel p1 memiliki GridLayout manager, empat baris dan tiga kolom