Video: [Literasi] Mojokerto, Jawa Timur: 'Big Book' untuk Pembelajaran Literasi di Kelas 1 SDN Kebondalem 2025
Ini berita besar! Di Jawa, Anda bisa mendefinisikan kelas di kelas lain! Di sini, kelas
GameFrame
berisi kelas bernama
MyActionListener
.
impor java awt. FlowLayout;
impor java awt. peristiwa. ActionEvent;
impor java awt. peristiwa. ActionListener;
impor java util. Acak;
impor javax ayunan. JButton;
import javax ayunan. JFrame;
impor javax ayunan. JLabel;
impor javax ayunan. JTextField;
class GameFrame memperpanjang JFrame {
serial static static long long serialVersionUID = 1L;
int randomNumber = new Random (). nextInt (10) + 1;
int numGuesses = 0;
JTextField textField = JTextField baru (5);
JButton button = new JButton ("Guess");
label JLabel = JLabel baru (numGuesses + "guesses");
publik GameFrame () {
setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);
setLayout (new FlowLayout ());
tambahkan (textField);
tambahkan (tombol);
tambahkan (label);
tombol addActionListener (new MyActionListener () );
pak ();
setVisible (benar);
}
class MyActionListener menerapkan ActionListener {
@Override
public void actionPerformed (ActionEvent e) {
String textFieldText = textField . getText ();
jika (Integer. ParseInt (textFieldText) == randomNumber) {
. setEnabled (salah);
textField setText (textField. getText () + "Ya!");
textField setEnabled (salah);
} lagi {
textField. setText ("");
textField requestFocus ();
}
numGuesses ++;
String guessWord = (numGuesses == 1)? "Tebak": "tebakan"; Label
. setText (numGuesses + guessWord);
}
}
}
Kelas
MyActionListener
di atas adalah kelas terdalam. Kelas dalam sangat mirip kelas lainnya. Tapi dalam kode kelas dalam, Anda bisa merujuk ke bidang kelas yang dilampirkan. Sebagai contoh, beberapa pernyataan di dalam
MyActionListener
menggunakan nama
textField
, dan
textField
didefinisikan di kelas Melampirkan
GameFrame
.
Perhatikan bahwa kode di atas hanya menggunakan kelas
MyActionListener
satu kali saja. (Penggunaannya hanya pada panggilan ke tombol
addActionListener
.) Jadi, apakah Anda benar-benar membutuhkan nama untuk sesuatu yang hanya digunakan sekali saja? Tidak, tidak. Anda dapat mengganti keseluruhan definisi kelas dalam di dalam panggilan ke tombol
.addActionListener
. Bila Anda melakukan ini, Anda memiliki kelas batin anonim. Beginilah cara kerjanya.
impor java awt. FlowLayout;
impor java awt. peristiwa. ActionEvent;
impor java awt. peristiwa. ActionListener;
impor java util. Acak;
impor javax ayunan. JButton;
impor javax ayunan. JFrame;
impor javax ayunan. JLabel;
impor javax ayunan. JTextField;
class GameFrame memperpanjang JFrame {
serial static static long long serialVersionUID = 1L;
int randomNumber = new Random (). nextInt (10) + 1;
int numGuesses = 0;
JTextField textField = JTextField baru (5);
JButton button = new JButton ("Guess");
label JLabel = JLabel baru (numGuesses + "guesses");
publik GameFrame () {
setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);
setLayout (new FlowLayout ());
tambahkan (textField);
tambahkan (tombol);
tambahkan (label);
tombol addActionListener (new ActionListener () {
@Override
public void actionPerformed (ActionEvent e) {
String textFieldText = textField getText ();
if (Integer. parseInt (textFieldText) = = randomNumber) {
tombol setEnabled (false);
textField, setText (textField, getText () + "Ya!");
textField. setEnabled (false);
} else {< textField, setText ("");
textField, requestFocus ();
}
numGuesses ++;
String guessWord = (numGuesses == 1)? "Tebak": "tebakan"; < label. SetText (numGuesses + guessWord);
}
}
);
paket (); setVisible (benar);
}
}
Kelas dalam bagus untuk hal-hal seperti penangan acara, seperti metode
actionPerformed
. Hal yang paling sulit tentang kelas batin
anonim
adalah mencatat tanda kurung, kurung kurawal, dan lekukan Beberapa saran rendah hati: mulailah dengan menulis kode tanpa kelas dalam apapun. Kemudian, ketika Anda menjadi bosan dengan kelas Java biasa, bereksperimen dengan mengubah beberapa kelas biasa Anda menjadi kelas dalam.
