Praktikum 9 Inner Class Dan Layout
Praktikum 9 Inner Class Dan Layout
import java.awt.*;
import java.awt.event.*;
public class AWTCounterAnonymousInnerClass1 extends Frame {
// Class ini BUKAN listener, dia tidak meng-implement ActionListener
private TextField tfCount;
private int count = 0;
public AWTCounterAnonymousInnerClass1 () {
setLayout(new FlowLayout());
add(new Label("Counter")); // anonymous Label
tfCount = new TextField(count + "", 10);
tfCount.setEditable(false); // read-only
add(tfCount);
Button btnCount = new Button("Count");
add(btnCount);
// buat anonymous instance dari anonymous class sbg
// listener ke source btnCount
btnCount.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
++count;
tfCount.setText(count + "");
}
});
setSize(250, 100);
setTitle("AWT Counter");
setVisible(true);
}
Tiap button jika di tekan akan bertambah lebarnya 1 satuan dan bila sudah mencapai
ukuran 4.0 akan kembali menjadi 0.0. berikut actionPerformed untuk tiap button
Button b = (Button)evt.getSource();
GridBagConstraints gbc = gbl.getConstraints(b);
if (++gbc.weightx > 4) {
gbc.weightx = 0;
}
gbl.setConstraints(b, gbc);
b.setLabel("" + gbc.weightx);
invalidate();
validate();
4. Buatlah AWT GUI dengan nama MultiLayout.java, seperti gambar di bawah ini. Di
sediakan 2 Panel s dan e. Container di setel ke BorderLayout, sehingga kita dapat
menambahkan Label Masukan String Text pada posisi North dengan alignment
CENTER. Lalu menambahkan TextArea pada posisi Center. Setelah itu kita setel
layout panel e dengan GridLayout(0,1) artinya 1 baris 2 kolom, lalu tambahkan 3
komponen Button pada panel e yaitu dengan label Reformat, "Periksa Ejaan" dan
"Options", kemudian tambahkan panel e ke container pada posisi East. Terakhir kita setel
panel s ke FlowLayout, pada panel ini kita tambahkan 3 komponen Button dengan label
"Save", Cancel dan Help, tambahkan panel s ke container pada posisi South. Setel
ukuran frame (350,200) dan tambahkan addWindowListener supaya aplikasi dapat di
tutup.
5. Buatlah GUI AWT ChangeFont.java seperti gambar di bawah ini. Frame terdiri dari
beberapa variable yaitu private Font plainFont, boldFont, italicFont,
boldItalicFont; private List fontList; private Panel buttonPanel;
private Button resetButton, exitButton; private Label msgLabel;. Variabel
bertipe font di pakai untuk menyimpan dan merubah style dari font yang akan di
tampilkan pada label msgLabel. fontList di pakai untuk menyimpan isi dari style font
yang di pilih yaitu bold, italic dan bolditalic. Tombol reset di pakai untuk merubah font
menjadi default atau plain text. Variabel plaintFont di pakai untuk menyimpan font
plain, plainFont = new Font("plain", Font.PLAIN, 10);, begitu seterusnya untuk
yang bold, italic, bold dan bolditalic. Karena secara default layout pada AWT adalah
BorderLayout, maka msgLabel di tambahkan pada posisi North, fontList pada posisi
Center dan buttonPanel pada posisi South yang di setel layoutnya dengan
GridLayout(1,2) artinya 1 baris 2 kolom, yang akan di tambah button reset dan exit.
Buat listener sebagai berikut :
ResetButtonListener resetListener = new ResetButtonListener();
ExitButtonListener exitListener = new ExitButtonListener();
ListItemListener listListener = new ListItemListener();
Dan tambahkan listener tersebut pada :
resetButton.addActionListener(resetListener);
exitButton.addActionListener(exitListener);
fontList.addItemListener(listListener);
resetListener akan merubah font pada msgLabel menjadi plain
exitListener akan keluar dari aaplikasi
listListener akan merubah font msgLabel sesuai item yang terpilih, gunakan String S
= fontList.getSelectedItem(); if (S.equals("bold")){}