Anda di halaman 1dari 10

PRAKTIKUM : 2

JUDUL : AWT DAN SWING


WAKTU : 1 X 120 Menit

1. Kompetensi Dasar
a. Memahami persamaan dan perbedaan antara AWT dan Swing
b. Perbedaan antara komponen dan kontainer.
c. Mendesain aplikasi GUI menggunakan AWT.
d. Mendesain aplikasi GUI menggunakan Swing.
e. Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen GUI
f. Membuat tampilan yang komplek dalam mendesain aplikasi GUI.

2. Teori Dasar
Tanpa mempelajari tentang grapichal user interface (GUI) API, Anda masih tetap bisa
membuat suatu program. Tetapi, program Anda akan kelihatan tidak menarik dan tidak nyaman
digunakan bagi para user. Memiliki GUI yang baik dapat memberi efek pada penggunaan aplikasi.
Java menyediakan banyak tool seperti Abstract Windowing Toolkit dan Swing untuk
mengembangkan aplikasi GUI yang interaktif.
The Java Foundation Class (JFC), merupakan bagian penting dari Java SDK, yang
termasuk dalam koleksi dari API dimana dapat mempermudah pengembangan aplikasi JAVA GUI.
JFC termasuk diantara 5 bagian utama dari API yaitu AWT dan Swing. Tiga bagian yang lainnya
dari API adalah Java2D, Accessibility, dan Drag and Drop. Semua itu membantu developer dalam
mendesain dan mengimplementasikan aplikasi dengan visualisasi yang lebih baik.
AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat
aplikasi Java dan applet. Anda akan mempelajari applet pada bab berikutnya. Tidak seperti beberapa
komponen AWT yang menggunakan native code, keseluruhan Swing ditulis menggunakan bahasa
pemrograman Java.
Swing menyediakan implementasi platform-independent dimana aplikasi yang
dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang sama. Begitu juga
dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada dua mesin yang
berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang mengimplementasikan
beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat digunakan bersama
dengan komponen Swing.

3. Praktikum
a. Menampilkan Frame

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class SampleFrame extends Frame{

public SampleFrame(){

//digunakan untuk menutup aplikasi


addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
dispose();
}

});
}

public static void main(String[] args) {


SampleFrame sf = new SampleFrame();
sf.setSize(300, 300);
sf.setTitle("Menampilkan Frame");
sf.setVisible(true);
}
}

Hasil Percobaan 1 Output Frame :

b. Menampilkan Panel :

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Panel;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
*
* @author choirulhuda
*/
public class GraphicPanel extends Panel{

public GraphicPanel() {
setBackground(Color.BLACK);
}

@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(new Color(0, 255, 0));
g.setFont(new Font("Helvetica",Font.PLAIN,16));
g.drawString("Hello GUI World!", 30, 100);
g.setColor(new Color(1.0f,0,0)); //red
g.fillRect(30, 100, 150, 10);
}

public static void main(String[] args) {


Frame f = new Frame("Testing Graphics Panel");
GraphicPanel gp = new GraphicPanel();
f.add(gp);
f.setSize(600, 700);
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}

Hasil Percobaan 2 Output Panel :

c. Menampilkan Frame Control :

import java.awt.Button;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.List;
import java.awt.Scrollbar;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
*
* @author choirulhuda
*/
public class FrameControls extends Frame{

public FrameControls() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
dispose();
}
});

setTitle("Menampilkan Frame Control");


}

public static void main(String[] args) {


FrameControls fc = new FrameControls();
fc.setLayout(new FlowLayout());
fc.setSize(600, 200);
fc.add(new Button("Click Me"));
fc.add(new Label("Label"));
fc.add(new TextField());

CheckboxGroup cbg = new CheckboxGroup();


fc.add(new Checkbox("OK", cbg, true));
fc.add(new Checkbox("Neutral", cbg, true));
fc.add(new Checkbox("Cancel", cbg, true));

List list = new List(3, false);


list.add("MTV");
list.add("V");
fc.add(list);

Choice chooser = new Choice();


chooser.add("Avril");
chooser.add("Monica");
chooser.add("Britney");
fc.add(chooser);
fc.add(new Scrollbar());
fc.setLocationRelativeTo(null);
fc.setVisible(true);
}
}

Hasil Percobaan 3 Output Frame Control :

d. Menampilkan Flow Layout Demo:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
*
* @author choirulhuda
*/
public class FlowLayoutDemo extends Frame{

public FlowLayoutDemo() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
dispose();
}
});

setTitle("Flow Layout");
setLocationRelativeTo(null);
}
public static void main(String[] args) {
FlowLayoutDemo fld = new FlowLayoutDemo();
fld.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 10));
fld.add(new Button("ONE"));
fld.add(new Button("TWO"));
fld.add(new Button("THREE"));
fld.setSize(300, 100);
fld.setVisible(true);
}

Hasil percobaan 4 Output Flow Layout Demo :

e. Menampilkan Border Layout Demo:


import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
*
* @author choirulhuda
*/
public class BorderLayoutDemo extends Frame{

public BorderLayoutDemo() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
dispose();
}
});

setTitle("Border Layout");
setLocationRelativeTo(null);
}

public static void main(String[] args) {


BorderLayoutDemo bld = new BorderLayoutDemo();
bld.setLayout(new BorderLayout(10, 10)); //may remove
bld.add(new Button("NORTH"), BorderLayout.NORTH);
bld.add(new Button("SOUTH"), BorderLayout.SOUTH);
bld.add(new Button("EAST"), BorderLayout.EAST);
bld.add(new Button("WEST"), BorderLayout.WEST);
bld.add(new Button("CENTER"), BorderLayout.CENTER);
bld.setSize(300, 200);
bld.setVisible(true);

}
Hasil Percobaan 5 Output Border Layout Demo :

f. Menampilkan Grid Layout Demo:

import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
*
* @author choirulhuda
*/
public class GridLayoutDemo extends Frame{

public GridLayoutDemo() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
dispose();
}
});

setTitle("Grid Layout");
setLocationRelativeTo(null);
}

public static void main(String[] args) {


GridLayoutDemo gld = new GridLayoutDemo();
gld.setLayout(new GridLayout(2, 3, 4, 4));
gld.add(new Button("ONE"));
gld.add(new Button("TWO"));
gld.add(new Button("THREE"));
gld.add(new Button("FOUR"));
gld.add(new Button("FIVE"));
gld.setSize(300, 300);
gld.setVisible(true);

}
Hasil Percobaan 6 output Grid Layout Demo :

g. Menampilkan Complex Layout:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
*
* @author choirulhuda
*/
public class ComplexLayout extends Frame{

public ComplexLayout() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
dispose();
}
});

setTitle("Complex Layout");
setLocationRelativeTo(null);
}

public static void main(String[] args) {


ComplexLayout cl = new ComplexLayout();
Panel panelNorth = new Panel();
Panel panelCenter = new Panel();
Panel panelSouth = new Panel();
panelNorth.add(new Button("ONE"));
panelNorth.add(new Button("TWO"));
panelNorth.add(new Button("THREE"));

panelCenter.setLayout(new GridLayout(4,4));
panelCenter.add(new TextField("1st"));
panelCenter.add(new TextField("2nd"));
panelCenter.add(new TextField("3rd"));
panelCenter.add(new TextField("4th"));
panelSouth.setLayout(new BorderLayout());
panelSouth.add(new Checkbox("Choose me!"),

BorderLayout.CENTER);
panelSouth.add(new Checkbox("I'm here!"),
BorderLayout.EAST);
panelSouth.add(new Checkbox("Pick me!"),
BorderLayout.WEST);

cl.add(panelNorth, BorderLayout.NORTH);
cl.add(panelCenter, BorderLayout.CENTER);
cl.add(panelSouth, BorderLayout.SOUTH);
cl.setSize(300,300);
cl.setVisible(true);

}
}

Hasil Percobaan 7 Output Complex Layout :

h. Menampilkan Swing Demo:

import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
*
* @author choirulhuda
*/
public class SwingDemo {
JFrame frame;
JPanel panel;
JTextField textField;
JButton button;
Container contentPane;

public SwingDemo() {
}

void launchFrame(){
frame = new JFrame("My First Swing");
panel = new JPanel();
textField = new JTextField("Default text");
button = new JButton("Click me!");

contentPane = frame.getContentPane();
panel.add(textField);
panel.add(button);
contentPane.add(panel, BorderLayout.CENTER);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 100);
frame.setVisible(true);
}

public static void main(String[] args) {


SwingDemo sd = new SwingDemo();
sd.launchFrame();
}
}

Hasil percobaan 8 Output Swing :

i. Menampilkan JOption Demo:

import javax.swing.JOptionPane;

/**
*
* @author choirulhuda
*/
public class JOptionPaneDemo {

JOptionPane optionPane;

public JOptionPaneDemo() {
}

void launchFrame() {
optionPane = new JOptionPane();
String name = optionPane.showInputDialog("Hi, what's yourname?");
optionPane.showMessageDialog(null, "Nice to meet you, " + name + ".",
"Greeting...", optionPane.PLAIN_MESSAGE);
System.exit(0);
}

public static void main(String[] args) {


new JOptionPaneDemo().launchFrame();
}
}
Hasil Percobaan 9 Output JOptionPaneDemo :

Anda mungkin juga menyukai