Idenya adalah sebagai berikut:
Buat kelas dan gunakan Extends untuk mewarisi JFrame kelas bentuk;
Buat Objek JFrame dan gunakan metode setVisible () dari kelas JFRame untuk mengatur formulir agar terlihat;
Dalam konstruktor, gunakan metode super () untuk mewarisi konstruktor kelas induk;
Gunakan metode settitle () untuk mengatur judul formulir;
Gunakan metode setBounds () untuk mengatur posisi tampilan dan ukuran formulir;
Gunakan metode setDefaultCloseOperation () untuk mengatur tindakan tombol tutup untuk keluar;
Buat objek Grid Layout Manager menggunakan GridLayout;
Gunakan metode setHgap () dari kelas Gridlayout untuk mengatur jarak horizontal komponen;
Gunakan metode setVgap () dari kelas GridLayout untuk mengatur jarak vertikal komponen;
Buat objek wadah jpanel;
Mengatur wadah melalui metode setLayout () dari kelas JPanel menggunakan Grid Layout Manager;
Buat array dua dimensi tipe string dan inisialisasi nilainya ke nilai yang ditampilkan pada tombol yang sesuai pada kalkulator;
Buat array dua dimensi tipe JBUTTON dan alokasikan ruang yang sesuai dengan array dua dimensi tipe string sebelumnya;
Iterasi melalui array dua dimensi tipe string, tetapkan ke tombol yang sesuai di array dua dimensi tipe JBUTTON ke setiap elemen, dan tambahkan acara ke setiap tombol sehingga nilai yang sesuai ditampilkan di kotak input teks saat tersebut Tombol diklik.
Salinan kode adalah sebagai berikut:
impor java.awt.borderlayout;
impor java.awt.dimension;
impor java.awt.gridlayout;
impor java.awt.event.actionevent;
impor java.awt.event.actionlistener;
impor javax.swing.jbutton;
impor javax.swing.jframe;
impor javax.swing.jpanel;
impor javax.swing.jtextfield;
impor javax.swing.swingconstants;
impor javax.swing.uimanager;
Kelas Publik ButtonArrayExample Memperluas JFrame {// Mewariskan JFrame kelas formulir
/**
*
*/
SerialVersionUID Long Final Private Static = 6626440733001287873L;
Private JTextfield Textfield;
public static void main (string args []) {
mencoba {
Uimanager.setLookandFeel ("com.sun.java.swing.plaf.nimbus.nimbuslookandfeel");
} catch (Throwable e) {
e.printstacktrace ();
}
ButtonArrayExample frame = new ButtonArrayExample ();
frame.setVisible (true);
}
public buttonarrayexample () {
super (); // mewarisi konstruktor kelas induk
BorderLayout BorderLayout = (BorderLayout) getContentPane (). GetLayout ();
borderlayout.setHgap (20);
borderlayout.setVgap (10);
settitle ("antarmuka kalkulator implementasi array");
setbounds (100, 100, 290, 282);
setDefaultCloseOperation (jframe.exit_on_close);
textfield = new jTextField ();
textfield.sethorizontalAlignment (swingconstants.trailing);
textfield.setPreferredSize (dimensi baru (12, 50));
getContentPane (). Add (TextField, BorderLayout.North);
textfield.setColumns (10);
GridLayout GridLayout = GridLayout baru (4, 0);
gridlayout.sethgap (5);
gridlayout.setvgap (5);
Panel JPanel = JPanel baru (); // Dapatkan objek kontainer
Panel.setLayout (GridLayout);
getContentPane (). Add (panel, borderlayout.center);
String [] [] name = {{"1", "2", "3", "+"}, {"4", "5", "6", "-"}, {"7", " 8 "," 9 "," × "}, {". "," 0 "," = "," ÷ "}};
Jbutton [] [] tombol = jbutton baru [4] [4];
untuk (int baris = 0; baris <name.length; baris ++) {
untuk (int col = 0; col <name.length; col ++) {
Tombol [ROW] [col] = Jbutton baru (nama [baris] [col]);
Tombol [ROW] [col] .addactionListener (ActionListener baru () {
@Mengesampingkan
public void actionPerformed (actionEvent e) {
Jbutton button = (jbutton) e.getSource ();
String text = textfield.getText ();
textfield.setText (text + button.getText ());
}
});
panel.add (tombol [baris] [col]);
}
}
}
}