Tulis aplikasi yang menyimulasikan kalkulator, menggunakan tata letak panel dan kisi, menambahkan kotak teks, 10 tombol angka (0~9), 4 tombol penjumlahan, pengurangan, perkalian dan pembagian, tombol tanda sama dengan, tombol hapus, dan kotak tombol root, tombol backspace, memerlukan rumus perhitungan dan hasil untuk ditampilkan dalam kotak teks, dan efeknya seperti yang ditunjukkan pada gambar di bawah ini.
Kode kalkulator sederhana Java:
import javax.swing.*; import javax.swing.JTextField; import java.awt.*; import java.awt.event.*; import java.awt.Color; ActionListener { private JPanel p1 = JPanel baru(); //Buat panel private JPanel p2 = JPanel baru(); t1; //Kotak teks 1 digunakan untuk menampilkan informasi masukan private JTextField t2; //Kotak teks 2 digunakan untuk menampilkan informasi hasil label JLabel pribadi; //Informasi label StringBuffer str; ,y ; //x dan y keduanya merupakan operan int z; //Z mewakili operator mana yang diklik. 0 mewakili "+", 1 mewakili "-", 2 mewakili "*", 3 mewakili "/" private JButton b[ ] = baru JButton[12]; //Membuat array dengan 12 tombol private JButton b1,b2,b3,b4,b5,b6,b7,b8; //Tombol fungsi aritmatika public Ex5_2() { super("Kalkulator Sederhana" ); /Nama jendela Kontainer c = getContentPane(); //Buat objek panel konten t1 = new JTextField(30); t1.setEditable(false); //Hanya dapat ditampilkan, tidak dapat diedit t2 = new JTextField(30); t2.setEditable(false); //Hanya dapat ditampilkan, tidak dapat diedit label = new JLabel("Selamat datang di Kalkulator Edisi Xiaowu ^_^o~ Bekerja keras! "); label.setForeground(Color.blue); //Buat buffer string kosong str=new StringBuffer(); p2.add(label); //Tambahkan label ke panel p2.add(t2); //Tambahkan kotak teks ke panel p2.add(t1); //Tambahkan kotak teks ke panel p2.setLayout(new GridLayout(4,1 )); //Taruh Tata letak panel adalah 4 baris dan 1 kolom for(int i=0;i<10;i++) //Tetapkan label untuk tombol 0~9 dalam array dan daftarkan pendengar { String s=""+ saya; b [saya]= baru JButton(s); b[i].addActionListener(ini } //Membuat instance setiap tombol b[10]= new JButton("-/+"); = JButton baru("/"); b2= JButton baru("Kembali"); b3= JButton baru("*"); b4= JButton baru("C"); JButton("+"); b6= new JButton("Sqrt"); b7= new JButton("-"); b8= new JButton("="); ; i<12;i++) { b[i].setForeground(Warna.biru } b1.setForeground(Warna.merah); b5.setForeground(Warna.merah); b7.setForeground(Warna.merah); b2.setForeground(Warna.biru); b4.setForeground(Warna.biru); .biru); //Tambahkan ke panel p1.add(b[7]); p1.tambahkan(b[9]); p1.tambahkan(b1); p1.tambahkan(b2); 6]); p1.tambahkan(b3); p1.tambahkan(b4); p1.tambahkan(b[1]); p1.tambahkan(b[2]); p1.tambahkan(b5); p1.tambahkan(b6); p1.tambahkan(b[0]); p1.tambahkan(b[10]); ;p1.add(b8); p1.setLayout(new GridLayout(4,5,5,5)); //Daftarkan pendengar b[10].addActionListener(ini); b[11].addActionListener(ini); b1.addActionListener(ini); b2.addActionListener(ini); b6.addActionListener(ini); ) ); b7.addActionListener(ini); //Tambahkan panel ke panel konten c.add(p2); c.add(p1); c.setLayout(new FlowLayout()); //Setel ke tata letak berurutan setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jendela untuk menutup Tindakan setVisible(true); //Setel ke setResizable(false); //Larang menyesuaikan ukuran bingkai setSize(400,300); //Metode utama mengimplementasikan pembuatan jendela public static void main(String[] args) { Ex5_2 f = new Ex5_2() } //Tombol pemrosesan event public void actionPerformed(ActionEvent e) { try { if(e.getSource( )==b4) //Pilih "C" untuk menghapus { t1.setText("0"); //Kosongkan kotak teks t1.setHorizontalAlignment(JTextField.RIGHT); //Sejajarkan teks ke kanan str.setLength(0); //Kosongkan buffer string untuk bersiap menerima operan masukan baru} else if(e.getSource ()==b[10])//Klik "+/-" untuk memilih apakah operan masukan berupa bilangan positif atau negatif{ x=Double.parseDouble(t1.getText().trim());//Fungsi trim adalah untuk menghilangkan spasi pada string t1.setText(""+(-x)); t1.setHorizontalAlignment(JTextField.RIGHT) ; } else if (e.getSource()==b5)//Klik tombol plus untuk mendapatkan nilai x dan z dan menghapus nilai y{ x=Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; z=0; } else if(e.getSource()==b7)//Klik untuk mengurangi Tombol mendapatkan nilai x dan z dan menghapus nilai y { x=Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; z=1; } else if(e.getSource()==b3)//Klik tombol perkalian untuk mendapatkan nilai x dan z dan menghapus nilai y{ x =Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; z=2; if(e.getSource()==b1)//Klik tombol pembagian untuk mendapatkan nilai x dan z dan menghapus nilai y{ x=Double.parseDouble(t1.getText().trim()); str .setLength(0); y=0d; z=3; } else if(e.getSource()==b8)//Klik tombol tanda sama dengan untuk menampilkan hasil perhitungan { str.setLength(0); switch(z) { kasus 0: t1.setText(""+(x+y)); t1.setHorizontalAlignment(JTextField.RIGHT);break; kasus 1: t1.setText(""+(xy)); setHorizontalAlignment(JTextField.RIGHT);break; t1.setText(""+(x*y)); t1.setHorizontalAlignment(JTextField.RIGHT);break; kasus 3: t1.setText(""+(x/y)); ;istirahat; if(e.getSource()==b[11])//Klik tombol "." untuk memasukkan desimal { if(t1.getText().trim().indexOf('.')!=-1) // Tentukan apakah string sudah berisi koma { } else //Jika tidak ada koma desimal { if(t1.getText().trim().equals("0"))//Jika awalnya ditampilkan sebagai 0 { t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); lain jika(t1.getText().trim().equals(""))/ /Jika awalnya ditampilkan sebagai kosong, jangan lakukan apa pun {} yang lain { t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); Temukan akar kuadrat { x=Double.parseDouble(t1.getText().trim()); { t1.setText("Pengecualian format angka"); t1.setHorizontalAlignment(JTextField.RIGHT); } else { t1.setText(""+Math.sqrt(x)); .setPanjang(0); y=0d; } lain { if(e.getSource()==b[0])//Jika tombol angka "0" dipilih { if(t1.getText().trim().equals("0"))//Jika ya ditampilkan Jika tampilan layar nol, tidak ada operasi yang dilakukan {} else t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); y=Double.parseDouble(t1.getText().trim() } else if (e.getSource()==b2) //Kunci kembali dipilih { if(! t1.getText().trim().equals("0"))//Jika tampilan tidak menunjukkan nol{ if(str.length()!=1) { t1.setText(str.delete(str.length()-1,str.length()).toString());//Pengecualian string di luar batas dapat dilempar t1.setHorizontalAlignment(JTextField.RIGHT) ; } lain { t1.setText("0"); t1.setHorizontalAlignment(JTextField.RIGHT); } } y=Double.parseDouble(t1.getText().trim()); else { t1.setText(str.append(e.getActionCommand()).toString()); ; y=Double.parseDouble(t1.getText().trim()); } } } catch(NumberFormatException e1){ t1.setText("Pengecualian format angka"); t1.setHorizontalAlignment(JTextField.RIGHT); e1){t1.setText("Indeks string di luar batas"); t1.setHorizontalAlignment(JTextField.RIGHT);} } }Render operasi:
Ini melengkapi pemrograman kalkulator Java sederhana. Saya harap artikel ini dapat menginspirasi semua orang untuk menulis kalkulator. Ini hanyalah kalkulator sederhana, dan Anda dapat terus menggunakannya untuk meningkatkan fungsi kalkulator.