나는 1 년 이상 Java를 공부 해 왔으며 웹을 연습 해 왔습니다. 프로젝트에서 GUI 관련 지식을 사용해야한다는 것을 알았지 만 할 수 없었습니다. 이 온라인에는 기사가 많지 않았으므로 총알을 물고 처음부터 배워야했습니다. 그러나 학습 후 GUI가 실제로 매우 흥미 롭다는 것을 알았습니다. 웹 프로그램과 같은 인터넷에 의존하지 않으며 Android와 크게 다르지 않은 많은 레이아웃이 있습니다. 그런 다음 GUI 개발에 다시 사랑에 빠졌다는 것을 알았습니다. 많이 말하지 말고 코드를 추가하십시오. Android 또는 관련 인터페이스를 개발 한 사람들은 진실을 이해한다고 생각합니다.
효과를 먼저 보자
1. 기본 인터페이스에 로그인하십시오
패키지 edu.gzu.stumanager; java.awt.eventqueue import; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; java.awt.toolkit import; import javax.swing.jtextfield; import edu.gzu.stumanager.dao.userloginvalid; Edu.gzu.stumanager.domain.studentinfo import; Edu.gzu.stumanager.view.studentMainView import; import java.awt.choice; Java.awt.Font 가져 오기; Java.awt.Button 가져 오기; import java.awt.event.mouseadapter; java.awt.event.mouseevent import; 공개 클래스 mainui {개인 JFrame 프레임; 개인 Jtextfield Textfield; 개인 jtextfield textfield_1; /*** 응용 프로그램을 시작합니다. */ public static void main (string [] args) {eventqueue.invokelater (new runnable () {public void run () {try {mainui wind } /*** 응용 프로그램을 만듭니다. */ public mainui () {initialize (); } /*** 프레임의 내용을 초기화합니다. */ 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 = new Jlabel ( "/u5b66/u751f/u6210/u7ee9/u7ba1/u7406/u7cfb/u7edf/u7528/u6237/u767b/u5f55/uff01"); lblnewlabel.setfont (new font ( "宋体", font.plain, 16)); lblnewlabel.setbounds (111, 17, 287, 15); frame.getContentPane (). add (lblnewlabel); Jlabel lblnewlabel_1 = new Jlabel ( "/u7528/u6237/u540d/uff1a"); lblnewlabel_1.setfont (new font ( "宋体", font.plain, 14)); lblnewlabel_1. 세트 바운드 (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); jlabel label = new Jlabel ( "/u5bc6/u7801/uff1a"); label.setfont (new font ( "宋体", font.plain, 14)); label.setbounds (87, 108, 67, 15); frame.getContentPane (). add (레이블); TextField_1 = 새로운 jtextfield (); TextField_1.SetColumns (10); TextField_1. 세트 바운드 (154, 103, 141, 21); frame.getContentPane (). add (TextField_1); Jlabel lblnewlabel_2 = new Jlabel ( "/u6211/u7684/u8eab/u4efd/u662f/uff1a"); lblnewlabel_2.setfont (new font ( "安体", font.plain, 14)); lblnewlabel_2.setbounds (105, 150, 97, 15); frame.getContentPane (). add (lblnewlabel_2); 최종 선택 선택 = 새로운 선택 (); 선택. 세트 바운드 (210, 147, 74, 21); 선택 .add ( "학생"); 선택 .add ( "교사"); 선택 .add ( "Systener"); frame.getContentPane (). add (선택); 버튼 버튼 = 새 버튼 ( "/u767b/u5f55"); button.setbounds (87, 194, 76, 23); button.addmouseListener (new MouseAdapter () {@override public void mouseclicked (mouseevent e) {string user = textfield.getText (); String password = textfield_1.getText (); string shenfen = choice.getSelectedItem (); if (user.equals ( ") | joptionpane.showmessagedialog (hello, 계정은 비어있을 수 없습니다!); StudentInfo (사용자), integer.parseint (password), shenfen); StudentMainView (stu). frame.getContentPane (). 추가 (버튼); 버튼 버튼 _1 = 새 버튼 ( "/u53d6/u6d88"); button_1. 세트 바운드 (219, 194, 76, 23); frame.getContentPane (). add (button_1); }}2. 로그인 검증 로직
패키지 edu.gzu.stumanager.dao; Edu.gzu.stumanager.domain.studentinfo import; public class userLoginValid {public String isvalid (windentinfo stu) {int idnum = stu.getIdnum (); int password = stu.getPassword (); 문자열 idntify = stu.getIndify (); 문자열 결과 = null; if ( "학생".equals (idntify)) {if (idnum == 1207010209 && password == 123) {stu.setname ( "liu mingsheng"); 결과 = "성공적으로 로그인!"; } else {result = "이 사용자는 학생 계정에 존재하지 않습니다. 신원을 확인하고 다시 로그인하십시오!"; }} else if ( "교사".equals (idntify))) {if (idnum == 1174386356 && password == 123) {stu.setName ( "교사 liu mingsheng"); 결과 = "성공적으로 로그인!"; } else {result = "이 사용자는 교사 계정에 존재하지 않습니다. 신원을 확인하고 다시 로그인하십시오!"; }} else if ( "System Administrator".Equals (idntify)) {if (idnum == 999999 && password == 123) {stu.setName ( "System Administrator"); 결과 = "성공적으로 로그인!"; } else {result = "이 사용자는 시스템 관리자 계정에 존재하지 않습니다. 신원을 확인하고 다시 로그인하십시오!"; }} 반환 결과; }}3. 사용자 객체 (이것은 간단한 콩입니다)
패키지 edu.gzu.stumanager.domain; 공개 클래스 StudentInfo {private int idnum; 개인 문자열 이름; 개인 int 비밀번호; 개인 문자열 식별; public studentInfo (int idnum, int password, string 획득) {super (); this.idnum = idnum; this.password = 비밀번호; this.identify = 식별; } public int getIdnum () {return idnum; } public void setidnum (int idnum) {this.idnum = idnum; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public int getpassword () {반환 비밀번호; } public void setpassword (int password) {this.password = password; } public string getIndify () {return 식별; } public void setIndify (문자열 식별) {this.Inderify = 식별; }}4. 성공적인 로그인 후 메인 인터페이스
패키지 edu.gzu.stumanager.view; Java.awt.Button 가져 오기; java.awt.canvas import; import java.awt.choice; import java.awt.color; java.awt.toolkit import; import java.awt.event.itemevent; import java.awt.event.itemlistener; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jpanel; import javax.swing.jtextfield; Edu.gzu.stumanager.domain.studentinfo import; 공개 클래스 StudentMainView {개인 JFrame 프레임; 개인 Jtextfield Textfield; 개인 jtextfield textfield_1; 개인 Jtextfield Textfield_2; 개인 Jtextfield Textfield_3; 사생활 학생 정보; /*** 프레임을 만듭니다. * @wbp.parser.entrypoint */ public studentmainview (StudentInfo info) {this.info = info; } public jframe getframe () {initialize (); 리턴 프레임; } /*** 프레임의 내용을 초기화합니다. * @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 = new Jlabel ( "Welcome ["+info.getname ()+"], 학생 점수 관리 시스템에 로그인!"); lblnewlabel.setbounds (54, 10, 322, 15); frame.getContentPane (). add (lblnewlabel); JPANEL 패널 = 새로운 JPANEL (); PANIL.SETBOUNDS (29, 52, 250, 180); frame.getContentPane (). add (패널); PALEN.SETLAYOUT (NULL); Jlabel lblnewlabel_1 = new Jlabel ( "/u6210/u7ee9/u6570/u636e"); lblnewlabel_1.setbounds (94, 10, 65, 15); PALEN.ADD (LBLNEWLABEL_1); Jlabel lblnewlabel_2 = new Jlabel ( "/u5b66/u53f7/uff1a"); lblnewlabel_2.setbounds (22, 37, 40, 15); PALEN.ADD (lblnewlabel_2); Textfield = New Jtextfield (); Textfield.SetBounds (72, 35, 154, 21); textfield.settext (info.getIdnum ()+""); PALEN.ADD (텍스트 필드); Textfield.setColumns (10); jlabel lblnewlabel_3 = new Jlabel ( "/u59d3/u540d/uff1a"); lblnewlabel_3. 세트 바운드 (22, 67, 44, 15); PALEN.ADD (LBLNEWLABEL_3); TextField_1 = 새로운 jtextfield (); Textfield_1. 세트 바운드 (72, 66, 154, 21); textfield_1.settext (info.getName ()); PALEN.ADD (TextField_1); TextField_1.SetColumns (10); 캔버스 캔버스 = 새로운 캔버스 (); Canvas.setbackground (color.blue); 캔버스 세트 바운드 (22, 100, 205, 1); PALEN.ADD (캔버스); Jlabel lblnewlabel_4 = new Jlabel ( "/u8bfe/u7a0b/u540d"); lblnewlabel_4.setbounds (22, 116, 47, 15); PALEN.ADD (lblnewlabel_4); Jlabel lblnewlabel_5 = new Jlabel ( "/u6210/u7ee9"); lblnewlabel_5. 세트 바운드 (160, 116, 43, 15); PALEN.ADD (lblnewlabel_5); TextField_2 = 새로운 jtextfield (); TextField_2.setBounds (22, 140, 123, 21); PALEN.ADD (TextField_2); TextField_2.setColumns (10); TextField_3 = 새로운 jtextfield (); Textfield_3.setBounds (159, 140, 66, 21); PALEN.ADD (TextField_3); Textfield_3.setColumns (10); JPANEL PANEL_1 = 새로운 jpanel (); PANEL_1. 세트 바운드 (317, 52, 110, 180); frame.getContentPane (). add (panel_1); PALEN_1.SETLAYOUT (NULL); Jlabel lblnewlabel_6 = new Jlabel ( "/u64cd/u4f5c/u83dc/u5355"); lblnewlabel_6. 세트 바운드 (15, 10, 54, 15); PANIL_1.ADD (lblnewlabel_6); 버튼 버튼 = 새 버튼 ( "/u7b2c/u4e00/u95e8/u8bfe/u7a0b"); button.setbounds (10, 31, 76, 23); PANIL_1.add (버튼); 버튼 버튼 _1 = 새 버튼 ( "/u4e00/u95e8/u8bfe/u7a0b"); button_1. 세트 바운드 (10, 61, 76, 23); PALEN_1.ADD (button_1); 버튼 버튼 _2 = 새 버튼 ( "/u4e0a/u4e00/u95e8/u8bfe/u7a0b"); button_2.setactionCommand ( "/u4e0a/u4e00/u95e8/u8bfe/u7a0b"); button_2.setBounds (10, 90, 76, 23); PALEN_1.ADD (button_2); 버튼 버튼 _3 = 새 버튼 ( "/u6700/u540e/u4e00/u95e8/u8bfe"); button_3.setBounds (10, 117, 76, 23); PALEN_1.ADD (button_3); 선택 선택 = 새로운 선택 (); 선택. 세트 바운드 (10, 149, 76, 21); 선택 .add ( "코스 선택"); chelect.add ( "고급 수학"); 선택 .add ( "University English"); 선택 .add ( "마르크스-레닌주의"); 선택 .add ( "Mao Zedong Thought"); 선택 .add ( "컴퓨터 그래픽"); chelect.additemListener (new itemListener () {@Override public void itemStateChanged (itemEvent e) {object [] objs = e.getItemSelectable (). getSelectedObjects (); for (Object ob : objs) {// joptionpane.showmessagedialog (frame, ob (prame, ob)); 수학 ".equals (ob.tostring ())) {textfield_2.settext ("고급 수학 "); Textfield_3.settext ("98 ");} else if ("College English ".Equals (ob.toString ())) {textfield_2.settext ("College English "); 87"); if ( "marxism-leninism".equals (ob.tostring ()) {textfield_2.settext ( "marxism-leninism"); textfield_3.settext ( "73"); PANIL_1.add (선택); }}이렇게하면 쉽게 로그인 확인이 가능합니다. 데이터베이스에서 데이터를 읽을 계획 이었지만 시간 제약으로 인해 간단하고 직접 확인할 것입니다. 시간이 있다면 다른 부분을 할 것입니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.