Saya telah mempelajari Java selama lebih dari setahun dan telah berlatih web. Saya menemukan bahwa saya perlu menggunakan pengetahuan terkait GUI dalam suatu proyek, tetapi saya tidak bisa melakukannya. Tidak banyak artikel tentang ini secara online, jadi saya harus menggigit peluru dan mempelajarinya dari awal. Namun, setelah belajar, saya menemukan bahwa GUI sebenarnya sangat menarik. Itu tidak bergantung pada internet seperti program web, dan ada banyak tata letak yang tidak jauh berbeda dari Android. Kemudian saya menemukan bahwa saya jatuh cinta dengan pengembangan GUI lagi. Saya tidak akan banyak bicara, cukup tambahkan kodenya. Saya percaya bahwa mereka yang telah mengembangkan android atau antarmuka terkait memahami kebenaran.
Mari kita lihat efeknya dulu
1. Masuk ke antarmuka utama
paket edu.gzu.stumanager; impor java.awt.eventqueue; impor javax.swing.jframe; impor javax.swing.jlabel; impor javax.swing.joptionpane; impor java.awt.toolkit; impor javax.swing.jtextfield; impor edu.gzu.stumanager.dao.userloginvalid; impor edu.gzu.stumanager.domain.studentinfo; impor edu.gzu.stumanager.view.studentmainview; impor java.awt.choice; impor java.awt.font; impor java.awt.button; impor java.awt.event.mouseadapter; impor java.awt.event.mouseevent; kelas publik Mainui {bingkai jframe pribadi; Private JTextfield Textfield; Private JTextField Textfield_1; /*** Luncurkan aplikasi. */ public static void main (string [] args) {eventqueue.invokelater (runnable baru () {public void run () {try {Mainui window = new Mainui (); window.frame.setVisible (true);} catch (pengecualian e) {e.printstack ();}}}} {exception e) {e.printstack (); } /*** Buat aplikasi. */ public mainui () {initialize (); } /*** Inisialisasi konten bingkai. */ private void initialize () {frame = new jframe (); frame.settitle ("/u6210/u7ee9/u7ba1/u7406/u7cfb/u7edf/uff08/u767b/u5f55/uff09"); frame.seticonimage (toolkit.getDefaultToolKit (). getImage (Mainui.class.getResource ("/Image/func_list7_privmana.png")))); frame.setbounds (400, 250, 450, 300); frame.setDefaultCloseOperation (jframe.exit_on_close); frame.getContentPane (). setLayout (null); Jlabel lblnewlabel = jlabel baru ("/u5b66/u751f/u6210/u7ee9/u7ba1/u7406/u7cfb/u7edf/u7528/u6237/u767b/u5f55/uff01"); lblnewlabel.setfont (font baru ("宋体", font.plain, 16)); lblnewlabel.setbounds (111, 17, 287, 15); frame.getContentPane (). Add (lblNewLabel); Jlabel lblnewlabel_1 = jlabel baru ("/u7528/u6237/u540d/uff1a"); lblnewlabel_1.setfont (font baru ("宋体", font.plain, 14)); lblnewlabel_1.setbounds (87, 67, 67, 15); frame.getContentPane (). Add (lblNewLabel_1); textfield = new jTextField (); textfield.setbounds (154, 64, 141, 21); frame.getContentPane (). Add (TextField); textfield.setColumns (10); Label jlabel = jlabel baru ("/u5bc6/u7801/uff1a"); label.setfont (font baru ("宋体", font.plain, 14)); label.setbounds (87, 108, 67, 15); frame.getContentPane (). Tambah (label); textfield_1 = jTextField baru (); textfield_1.setColumns (10); textfield_1.setbounds (154, 103, 141, 21); frame.getContentPane (). Add (TextField_1); Jlabel lblnewlabel_2 = jlabel baru ("/u6211/u7684/u8ab/u4efd/u662f/uff1a"); lblnewlabel_2.setfont (font baru ("安体", font.plain, 14)); lblnewlabel_2.setbounds (105, 150, 97, 15); frame.getContentPane (). Add (lblNewLabel_2); Pilihan Pilihan Akhir = Pilihan Baru (); pilihan.setbounds (210, 147, 74, 21); Pilihan.Add ("Siswa"); pilihan.add ("guru"); pilihan.add ("Systener"); frame.getContentPane (). Tambah (pilihan); Tombol = tombol baru ("/u767b/u5f55"); Button.setbounds (87, 194, 76, 23); Button.AddMouseListener (mouseAdapter baru () {@Override public void mouseClicked (mouseEvent e) {string user = textfield.getText (); string password = textfield_1.getText (); string shenfen = choice.getselectedItem (); if (user.gettext (); string shenfen = choice. JOPTIONPANE.SHOWMESSAGEIALOG (bingkai, Shenfen+": halo, akun tidak bisa kosong!") StudentInfo (integer.parseint (pengguna), integer.parseint (kata sandi), shenfen); StudentMainview (Stu); frame.getContentPane (). Tambah (tombol); Tombol tombol_1 = tombol baru ("/u53d6/u6d88"); tombol_1.setbounds (219, 194, 76, 23); frame.getContentPane (). Tambah (tombol_1); }}2. Logika Verifikasi Masuk
paket edu.gzu.stumanager.dao; impor edu.gzu.stumanager.domain.studentinfo; Public Class UserLogInValid {public String isValid (StudentInfo Stu) {int idnum = stu.getIdnum (); int kata sandi = stu.getPassword (); String idntify = stu.getIdentify (); Hasil string = null; if ("student" .equals (idntify)) {if (idnum == 1207010209 && password == 123) {stu.setname ("liu mingsheng"); hasil = "Login berhasil!"; } else {result = "Pengguna ini tidak ada di akun siswa. Harap konfirmasi identitas Anda dan masuk lagi!"; }} lain if ("Teacher" .Equals (IDNTIFY)) {if (idnum == 1174386356 && Kata sandi == 123) {Stu.setname ("Teacher Liu Mingsheng"); hasil = "Login berhasil!"; } else {result = "Pengguna ini tidak ada di akun guru. Harap konfirmasi identitas Anda dan masuk lagi!"; }} lain jika ("Administrator Sistem" .Equals (IDNTIFY)) {if (idnum == 999999 && password == 123) {Stu.setName ("Administrator Sistem"); hasil = "Login berhasil!"; } else {result = "Pengguna ini tidak ada di akun Administrator Sistem. Harap konfirmasi identitas Anda dan masuk lagi!"; }} hasil pengembalian; }}3. Objek Pengguna (Ini adalah kacang sederhana)
paket edu.gzu.stumanager.domain; StudentInfo kelas publik {private int idnum; nama string pribadi; kata sandi int pribadi; Identifikasi string pribadi; public studentInfo (int idnum, int kata sandi, identifikasi string) {super (); this.idnum = idnum; this.password = kata sandi; this.Identify = identifikasi; } public int getIdnum () {return idnum; } public void setidnum (int idnum) {this.idnum = idnum; } public string getName () {return name; } public void setName (name string) {this.name = name; } public int getPassword () {return kata sandi; } public void setPassWord (int kata sandi) {this.password = kata sandi; } public String getIdentify () {return identifikasi; } public void setIdentify (string identifikasi) {this.Identify = identifikasi; }}4. Antarmuka utama setelah login yang berhasil
paket edu.gzu.stumanager.view; impor java.awt.button; impor java.awt.canvas; impor java.awt.choice; impor java.awt.color; impor java.awt.toolkit; impor java.awt.event.itemevent; impor java.awt.event.itemlistener; impor javax.swing.jframe; impor javax.swing.jlabel; impor javax.swing.joptionpane; impor javax.swing.jpanel; impor javax.swing.jtextfield; impor edu.gzu.stumanager.domain.studentinfo; StudentMainView kelas publik {bingkai jframe pribadi; Private JTextfield Textfield; Private JTextField Textfield_1; Private JTextField Textfield_2; Private JTextField Textfield_3; Info Siswa Pribadi; /*** Buat bingkai. * @wbp.parser.entrypoint */ public studentMainView (info StudentInfo) {this.info = info; } public jframe getFrame () {initialize (); bingkai pengembalian; } /*** Inisialisasi konten bingkai. * @wbp.parser.entrypoint */ public void initialize () {frame = new jframe (); frame.settitle ("/u6210/u7ee9/u7ba1/u7406/u7cfb/u7edf/uff08/u5b66/u751f/u7248/uff09"); frame.seticonimage (toolkit.getDefaultToolKit (). getImage (studentmainview.class.getResource ("/image/func_list7_privmana.png"))); frame.setbounds (300.150, 550, 300); frame.setDefaultCloseOperation (jframe.exit_on_close); frame.getContentPane (). setLayout (null); Jlabel lblnewlabel = jlabel baru ("Selamat datang ["+info.getName ()+"] untuk masuk ke sistem manajemen skor siswa!"); lblnewlabel.setbounds (54, 10, 322, 15); frame.getContentPane (). Add (lblNewLabel); Jpanel panel = jpanel baru (); Panel.setbounds (29, 52, 250, 180); frame.getContentPane (). Tambah (panel); Panel.setLayout (null); Jlabel lblnewlabel_1 = jlabel baru ("/u6210/u7ee9/u6570/u636e"); lblnewlabel_1.setbounds (94, 10, 65, 15); panel.add (lblnewlabel_1); Jlabel lblnewlabel_2 = jlabel baru ("/u5b66/u53f7/uff1a"); lblnewlabel_2.setbounds (22, 37, 40, 15); panel.add (lblnewlabel_2); textfield = new jTextField (); textfield.setbounds (72, 35, 154, 21); textfield.setText (info.getIdnum ()+""); Panel.Add (TextField); textfield.setColumns (10); Jlabel lblnewlabel_3 = jlabel baru ("/u59d3/u540d/uff1a"); lblnewlabel_3.setbounds (22, 67, 44, 15); panel.add (lblnewlabel_3); textfield_1 = jTextField baru (); textfield_1.setbounds (72, 66, 154, 21); textfield_1.setText (info.getName ()); panel.add (textfield_1); textfield_1.setColumns (10); Kanvas kanvas = kanvas baru (); Canvas.setBackground (Color.Blue); Canvas.setbounds (22, 100, 205, 1); panel.add (kanvas); Jlabel lblnewlabel_4 = jlabel baru ("/u8bfe/u7a0b/u540d"); lblnewlabel_4.setbounds (22, 116, 47, 15); panel.add (lblnewlabel_4); Jlabel lblnewlabel_5 = jlabel baru ("/u6210/u7ee9"); lblnewlabel_5.setbounds (160, 116, 43, 15); panel.add (lblnewlabel_5); textfield_2 = jTextField baru (); textfield_2.setbounds (22, 140, 123, 21); panel.add (textfield_2); textfield_2.setColumns (10); textfield_3 = jTextField baru (); textfield_3.setbounds (159, 140, 66, 21); panel.add (textfield_3); textfield_3.setColumns (10); Jpanel panel_1 = jpanel baru (); panel_1.setbounds (317, 52, 110, 180); frame.getContentPane (). Add (panel_1); panel_1.setlayout (null); Jlabel lblnewlabel_6 = jlabel baru ("/u64cd/u4f5c/u83dc/u5355"); lblnewlabel_6.setbounds (15, 10, 54, 15); panel_1.add (lblNewLabel_6); Tombol tombol = tombol baru ("/u7b2c/u4e00/u95e8/u8bfe/u7a0b"); Button.setbounds (10, 31, 76, 23); panel_1.add (tombol); Tombol tombol_1 = tombol baru ("/u4e00/u95e8/u8bfe/u7a0b"); tombol_1.setbounds (10, 61, 76, 23); panel_1.add (tombol_1); Tombol tombol_2 = tombol baru ("/u4e0a/u4e00/u95e8/u8bfe/u7a0b"); tombol_2.setactionCommand ("/u4e0a/u4e00/u95e8/u8bfe/u7a0b"); tombol_2.setbounds (10, 90, 76, 23); panel_1.add (tombol_2); Tombol tombol_3 = tombol baru ("/u6700/u540e/u4e00/u95e8/u8bfe"); tombol_3.setbounds (10, 117, 76, 23); panel_1.add (tombol_3); Pilihan Pilihan = Pilihan Baru (); pilihan.setbounds (10, 149, 76, 21); pilih.add ("Pilih kursus"); pilih.add ("Matematika Lanjutan"); pilih.add ("Bahasa Inggris Universitas"); pilih.add ("Marxisme-Leninisme"); pilih.add ("Mao Zedong Thought"); pilih.add ("grafik komputer"); choose.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { Object[] objs=e.getItemSelectable().getSelectedObjects(); for(Object ob:objs){ // JOptionPane.showMessageDialog(frame, ob.toString()); if("Advanced Mathematics".equals(ob.toString())){ textField_2.setText("Advanced Mathematics"); textField_3.setText("98"); }else if("College English".equals(ob.toString())){ textField_2.setText("College English"); textField_3.setText("87"); }else if ("marxism-leninisme" .Equals (ob.toString ())) {textfield_2.settext ("Marxism-Leninisme"); textfield_3.settext ("73"); panel_1.add (pilihan); }}Ini akan memungkinkan verifikasi login yang mudah. Saya berencana membaca data dari database, tetapi karena keterbatasan waktu, saya akan secara sederhana dan langsung memverifikasi di sini. Jika saya punya waktu, saya akan melakukan bagian lain.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.