版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《高級(jí)語(yǔ)言程序設(shè)計(jì)(2)》</p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 《高級(jí)語(yǔ)言程序設(shè)計(jì)(2)》課程設(shè)計(jì)報(bào)告</p><p><b> 程序設(shè)計(jì)說(shuō)明書</b></p><p><b> 【設(shè)計(jì)題目】</b></p&g
2、t;<p><b> 房產(chǎn)管理系統(tǒng)</b></p><p><b> 【問(wèn)題描述】</b></p><p> 住房是人們生活中不可或缺的,大型單位必須對(duì)員工的房產(chǎn)信息,員工信息以及員工與房產(chǎn)的對(duì)應(yīng)信息進(jìn)行有效的管理。</p><p><b> 【軟件功能】</b></p&g
3、t;<p> 1、 系統(tǒng)管理:對(duì)系統(tǒng)的設(shè)置,主要包括對(duì)信息項(xiàng)所用代碼表的維護(hù)。</p><p> 2、 房產(chǎn)管理:對(duì)房產(chǎn)休息進(jìn)行管理,包括房產(chǎn)信息維護(hù)和住房信息維護(hù)。</p><p> 3、 住戶管理:對(duì)房主休息進(jìn)行管理,包括房主基本信息維護(hù)和家庭信息維護(hù)。</p><p> 4、 查詢:根據(jù)不同信息項(xiàng)查詢滿足條件的記錄。</p>
4、<p><b> 【算法思想】</b></p><p> 總的思想是把所有我們要用的數(shù)據(jù)放到數(shù)據(jù)庫(kù)中 然后將數(shù)據(jù)庫(kù)中的東西顯現(xiàn)出來(lái) </p><p><b> 再加上面板設(shè)計(jì)</b></p><p><b> 【類的設(shè)計(jì)】</b></p><p> Hou
5、seManage類:定義房產(chǎn)信息顯示界面,定義界面顯示的標(biāo)簽、按鈕、文本框等,并將信息保存到數(shù)據(jù)庫(kù)中。</p><p> MainFrame類:包含主方法是程序運(yùn)行的開始。</p><p> ChangeCode類:定義修改密碼界面,并將修改的密碼保存到數(shù)據(jù)庫(kù)中。</p><p> QueryInformation類:定義查詢界面,定義chaxunhouse(
6、)方法和chaxunuser()方法查詢住房信息和住戶信息。</p><p> UserManage類:定義住戶信息界面,將用戶的信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。</p><p> ManageLogin類:設(shè)置登陸界面,設(shè)定密碼的顯示形式。</p><p> BookLoginAction類:定義confirm()方法來(lái)連接數(shù)據(jù)庫(kù),登錄系統(tǒng)。</p>&l
7、t;p><b> 【用戶界面】</b></p><p><b> 登陸界面</b></p><p><b> 2、主界面</b></p><p><b> 【程序技巧】</b></p><p> 可以將數(shù)據(jù)庫(kù)和面板程序連接起來(lái)。</p
8、><p> 【模塊劃分及調(diào)用關(guān)系】</p><p><b> 【模塊流程圖】</b></p><p> Changecode.java</p><p> ManagerLogin.java</p><p><b> 【運(yùn)行說(shuō)明】</b></p><p
9、> 運(yùn)行程序進(jìn)入登陸界面,輸入用戶名和密碼進(jìn)入。</p><p> 在主界面內(nèi)點(diǎn)擊房產(chǎn)信息、住房信息、密碼修改、查詢、關(guān)于等按鈕進(jìn)入相關(guān)的界面,進(jìn)行操作。</p><p><b> 程序上機(jī)調(diào)試報(bào)告</b></p><p> 【語(yǔ)法錯(cuò)誤及其排除】</p><p> 在編寫程序時(shí)出現(xiàn)許多拼寫和調(diào)用錯(cuò)誤,用E
10、clipse的提示及時(shí)修改錯(cuò)誤。</p><p> 【算法錯(cuò)誤及其排除】</p><p> 數(shù)據(jù)庫(kù)的應(yīng)用,不能連接 或是連接錯(cuò)誤 語(yǔ)法錯(cuò)誤 </p><p> 界面設(shè)計(jì) 總是不能達(dá)到最想要的樣子</p><p> 經(jīng)常忘寫東西 或是寫重了 導(dǎo)致運(yùn)行錯(cuò)誤 </p><p> 這種時(shí)候 總要仔細(xì)檢查程序 找出錯(cuò)
11、誤解決</p><p><b> 程序測(cè)試結(jié)果</b></p><p><b> 【測(cè)試數(shù)據(jù)】</b></p><p><b> 【輸出結(jié)果】</b></p><p><b> 登陸界面</b></p><p><b&
12、gt; 主界面</b></p><p><b> 3、房產(chǎn)信息界面</b></p><p><b> 3、 住房信息界面</b></p><p><b> 密碼修改界面</b></p><p><b> 5、查詢界面</b></
13、p><p><b> 6、關(guān)于界面</b></p><p><b> 【收獲及體會(huì)】</b></p><p> 這次課程設(shè)計(jì)過(guò)程中我學(xué)到了很多專業(yè)知識(shí),很多知識(shí),在書本上看似很有道理,可是這些知識(shí)在與實(shí)際情況結(jié)合起來(lái)往往就會(huì)出現(xiàn)書本上沒見過(guò)的情況,或者說(shuō)之前的理解與實(shí)際的使用是截然不同的.對(duì)書面上的東西實(shí)際操作在具體項(xiàng)目
14、上有了一個(gè)更加清晰的認(rèn)識(shí)。我還意識(shí)到一個(gè)大的程序,在寫代碼前,一定要有良好的需求分析和結(jié)構(gòu)設(shè)計(jì),應(yīng)該占整個(gè)程序設(shè)計(jì)的大部分時(shí)間,一個(gè)好的程序,分析設(shè)計(jì)應(yīng)該要非常充分,這樣才不至于代碼寫了一半才發(fā)現(xiàn)很多錯(cuò)誤。在具體代碼操作之前的設(shè)計(jì)規(guī)劃與構(gòu)建才是一個(gè)優(yōu)秀的程序設(shè)計(jì)的靈魂。</p><p><b> 源程序代碼</b></p><p> MainFrame.java&
15、lt;/p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.awt.event.WindowAdapter;</p><p> import java.awt.event.
16、WindowEvent;</p><p> import javax.swing.ImageIcon;</p><p> import javax.swing.JButton;</p><p> import javax.swing.JFrame;</p><p> import javax.swing.JLabel;</p&g
17、t;<p> import javax.swing.JOptionPane;</p><p> import javax.swing.JPanel;</p><p> import javax.swing.UIManager;</p><p> public class MainFrame extends JFrame </p>
18、<p> implements ActionListener{</p><p><b> /**</b></p><p><b> * 主界面</b></p><p><b> */</b></p><p> private static final lon
19、g serialVersionUID = -5091759600907766137L;</p><p> JButton jb1,jb2,jb3,jb4,jb5;</p><p> JPanel jpl;</p><p> JLabel jlb;</p><p> ImageIcon image = new ImageIcon(&qu
20、ot;MainFrame.jpg");//加窗口背景</p><p> public MainFrame(){</p><p> super("房產(chǎn)管理系統(tǒng)");</p><p> setBounds(200,200,500,400);</p><p> jb1=new JButton("房產(chǎn)信
21、息");</p><p> jb2=new JButton("住房信息");</p><p> jb3=new JButton("密碼修改");</p><p> jb4=new JButton("查詢");</p><p> jb5=new JButton(&qu
22、ot;關(guān)于");</p><p> jb1.setBounds(230,10,100,35);</p><p> jb2.setBounds(230,60,100,35);</p><p> jb3.setBounds(230,110,100,35);</p><p> jb4.setBounds(230,160,100,3
23、5);</p><p> jb5.setBounds(230,210,100,35);</p><p> getContentPane().setLayout(null);</p><p> // 把內(nèi)容窗格轉(zhuǎn)化為JPanel,否則不能用方法setOpaque()來(lái)使內(nèi)容窗格透明</p><p> jpl=(JPanel) this.
24、getContentPane();</p><p> jpl.setOpaque(false);</p><p> jlb=new JLabel(image);//把背景圖片顯示在標(biāo)簽里</p><p> //把標(biāo)簽的大小位置設(shè)置為圖片剛好填充整個(gè)面板</p><p> jlb.setBounds(0, 0, image.getIc
25、onWidth(),</p><p> image.getIconHeight());</p><p> jpl.add(jb1);jpl.add(jb2);</p><p> jpl.add(jb3);jpl.add(jb4);jpl.add(jb5);</p><p> this.getLayeredPane().setLayou
26、t(null);</p><p> // 把背景圖片添加到分層窗格的最底層</p><p> this.getLayeredPane().add(jlb, new Integer(Integer.MIN_VALUE));</p><p> this.setLocation(200, 200);</p><p> this.setRes
27、izable(false);</p><p> this.setVisible(true);</p><p> jb1.addActionListener(this);</p><p> jb2.addActionListener(this);</p><p> jb3.addActionListener(this);</p&g
28、t;<p> jb4.addActionListener(this);</p><p> jb5.addActionListener(this);</p><p> addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){&
29、lt;/p><p> setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);</p><p><b> }</b></p><p><b> });</b></p><p><b> }</b></p><p
30、> public static void main(String[] args) {</p><p><b> try{</b></p><p> UIManager.setLookAndFeel(UIManager</p><p> .getSystemLookAndFeelClassName());</p>&l
31、t;p> new ManagerLogin();</p><p> }catch(Exception ex){ex.printStackTrace();}</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><
32、p> if(e.getSource()==jb1)//單擊“房產(chǎn)管理”時(shí)</p><p> new HouseManage();</p><p> if(e.getSource()==jb2)//單擊“住戶管理”時(shí)</p><p> new UserManage();</p><p> if(e.getSource()==jb
33、3)// 單擊“密碼修改”時(shí)</p><p> new ChangeCode();</p><p> if(e.getSource()==jb4)//單擊“查詢”時(shí)</p><p> new QueryInformation();</p><p> if(e.getSource()==jb5)//單擊“關(guān)于”時(shí)</p>
34、<p> JOptionPane.showMessageDialog( </p><p> null, "此系統(tǒng)僅為本單位內(nèi)部人員使用," +</p><p> "如有疑問(wèn),請(qǐng)與區(qū)域領(lǐng)導(dǎo)聯(lián)系");</p><p><b> }</b></p><p><b
35、> }</b></p><p> HouseManage.java</p><p> import java.awt.Container;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListene
36、r;</p><p> import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p>&l
37、t;p> import java.sql.Statement;</p><p> import javax.swing.ImageIcon;</p><p> import javax.swing.JButton;</p><p> import javax.swing.JFrame;</p><p> import java
38、x.swing.JLabel;</p><p> import javax.swing.JOptionPane;</p><p> import javax.swing.JPanel;</p><p> import javax.swing.JTextField;</p><p> class HouseManage extends
39、JFrame implements ActionListener{</p><p> private static final long serialVersionUID = 7369478551299559505L;</p><p> Container cp;</p><p> JLabel lb1,lb2,lb3,lb4,lb5;</p>
40、<p> JLabel lb; //用來(lái)放圖片</p><p> JTextField houseName,houseLocation,houseArea,</p><p> houseNature,houseTime; </p><p> JButton bt;</p><p> JPanel jp;//</p&g
41、t;<p> ImageIcon image = new ImageIcon("houseInformation.jpg");//加窗口背景</p><p> public HouseManage(){</p><p> super("房產(chǎn)信息");</p><p> setBounds(195,
42、195,510,410);</p><p> setVisible(true);</p><p> lb1=new JLabel("房主姓名* ");//初始化</p><p> lb2=new JLabel("房產(chǎn)位置* ");</p><p> lb3=new JLabel("
43、;面積 *");</p><p> lb4=new JLabel("居住性質(zhì) *");</p><p> lb5=new JLabel("起止時(shí)間");</p><p> houseName=new JTextField(12);</p><p> houseLocation=new
44、JTextField(12);</p><p> houseArea=new JTextField(12);</p><p> houseNature=new JTextField(12);</p><p> houseTime=new JTextField(12);</p><p> bt=new JButton("添加&
45、quot;);</p><p> lb1.setBounds(20,20,100,30); //標(biāo)簽位置 </p><p> lb2.setBounds(20,60,100,30); </p><p> lb3.setBounds(20,100,100,30);</p><p> lb4.setBounds(2
46、0,140,100,30);</p><p> lb5.setBounds(20,180,100,30);</p><p> houseName.setBounds(140,20,100,30);//文本框位置</p><p> houseLocation.setBounds(140,60,100,30);</p><p> hous
47、eArea.setBounds(140,100,100,30);</p><p> houseNature.setBounds(140,140,100,30);</p><p> houseTime.setBounds(140,180,100,30);</p><p> bt.setBounds(180,240,80,30);//button位置</p&
48、gt;<p> getContentPane().setLayout(null);</p><p> // 把內(nèi)容窗格轉(zhuǎn)化為JPanel,否則不能用方法setOpaque()來(lái)使內(nèi)容窗格透明</p><p> jp=(JPanel) this.getContentPane();</p><p> jp.setOpaque(false);<
49、;/p><p> lb=new JLabel(image);//把背景圖片顯示在標(biāo)簽里</p><p> //把標(biāo)簽的大小位置設(shè)置為圖片剛好填充整個(gè)面板</p><p> lb.setBounds(0, 0, image.getIconWidth(),</p><p> image.getIconHeight());</p>
50、<p> jp.add(lb1);jp.add(lb2);jp.add(lb3);jp.add(lb4);jp.add(lb5);</p><p> jp.add(houseName);jp.add(houseLocation);jp.add(houseArea);</p><p> jp.add(houseNature);jp.add(houseTime);</p
51、><p> jp.add(bt); </p><p> this.getLayeredPane().setLayout(null);</p><p> // 把背景圖片添加到分層窗格的最底層</p><p> this.getLayeredPane().add(lb, new Integer(Integer.MIN_VALUE));<
52、;/p><p> bt.addActionListener(this);</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> addInformation();//添加到數(shù)據(jù)庫(kù)中</p>
53、<p><b> }</b></p><p> //連接數(shù)據(jù)庫(kù),添加信息</p><p> private void addInformation() {</p><p> String JDriver="sun.jdbc.odbc.JdbcOdbcDriver";</p><p>
54、 String conURL="jdbc:odbc:House";</p><p><b> try{</b></p><p> Class.forName(JDriver);</p><p> }catch(ClassNotFoundException e){</p><p> Syste
55、m.out.println("加載驅(qū)動(dòng)程序失敗");}</p><p><b> try</b></p><p><b> {</b></p><p> Connection con=DriverManager.getConnection(conURL);</p><p>
56、 Statement s=con.createStatement();</p><p> String houseNames=houseName.getText().trim();</p><p> String houseLocations=houseLocation.getText().trim();</p><p> String houseAreas
57、=houseArea.getText().trim();</p><p> String houseNatures=houseNature.getText().trim();</p><p> String houseTimes=houseTime.getText().trim();</p><p> String str="insert into
58、houseInformation values('"+houseNames+"','"</p><p> +houseLocations+"','"+houseAreas+"','"+houseNatures+"','"</p><
59、p> +houseTimes+"');";</p><p> String query="select*from houseInformation where" +</p><p> " 房主姓名='"+houseName+"'";</p><p>
60、 ResultSet rs=s.executeQuery(query);</p><p> boolean moreRecords=rs.next();</p><p> if(moreRecords)</p><p><b> {</b></p><p> JOptionPane.showMessageDial
61、og(null, "該房主姓名已存在,請(qǐng)重新輸入");</p><p> con.close();</p><p><b> return;</b></p><p><b> }</b></p><p> if(houseName.getText().length()==
62、0</p><p> ||houseLocation.getText().length()==0</p><p> ||houseArea.getText().length()==0</p><p> ||houseNature.getText().length()==0)</p><p><b> {</b>&
63、lt;/p><p> JOptionPane.showMessageDialog(null, "*為必填項(xiàng),不能為空");</p><p><b> return;</b></p><p><b> }</b></p><p> int insert=s.executeUpd
64、ate(str);</p><p> if(insert==1){</p><p> JOptionPane.showMessageDialog(null, "添加成功!");</p><p> houseName.setText(null);</p><p> houseLocation.setText(null
65、);</p><p> houseArea.setText(null);</p><p> houseNature.setText(null);</p><p> houseTime.setText(null);</p><p><b> }}</b></p><p> catch(SQ
66、LException e){</p><p> System.out.println("SQLException: " +e.getMessage( )); }</p><p><b> }}</b></p><p> ChangeCode.java</p><p> import java
67、.awt.*;</p><p> import java.awt.event.*;</p><p> import java.sql.*;</p><p> import javax.swing.*;</p><p> import javax.swing.border.EmptyBorder;</p><p>
68、; import javax.swing.border.LineBorder;</p><p> @SuppressWarnings("serial")</p><p> public class ChangeCode extends JFrame implements ActionListener{</p><p> private J
69、TextField username;</p><p> private TextField oldmima;</p><p> private TextField newmima;</p><p> private TextField checkmima;</p><p> private JButton queding;</
70、p><p> private JButton quxiao;</p><p> String JDriver ="sun.jdbc.odbc.JdbcOdbcDriver";</p><p> String conURL="jdbc:odbc:House";</p><p> public Chan
71、geCode()</p><p><b> {</b></p><p><b> super();</b></p><p> setTitle("密碼修改");</p><p> setResizable(false);</p><p> set
72、Bounds(200,200,500,400);</p><p> final BorderLayout borderLayout=new BorderLayout();</p><p> getContentPane().setLayout(borderLayout);</p><p> final JLabel label=new JLabel();<
73、;/p><p> ImageIcon icon =new ImageIcon("ChangeCode.jpg ");</p><p> label.setIcon(icon);</p><p> label.setPreferredSize(new Dimension(300,100));</p><p> label
74、.setBorder(new LineBorder(SystemColor.activeCaptionBorder,1,false));</p><p> getContentPane().add(label,BorderLayout.NORTH);</p><p> final JPanel p1=new JPanel();</p><p> p1.setB
75、order(new EmptyBorder(5,10,5,10));</p><p> final GridLayout gridlayout=new GridLayout(0,2);</p><p> gridlayout.setVgap(10);</p><p> gridlayout.setHgap(5);</p><p> p
76、1.setLayout(gridlayout);</p><p> getContentPane().add(p1); </p><p> final JLabel l1=new JLabel("用 戶 名:");</p><p> l1.setFont(new Font("宋體",Font.PLAIN,20));<
77、;/p><p> p1.add(l1);</p><p> username=new JTextField();</p><p> p1.add(username);</p><p> final JLabel l2=new JLabel("舊 密 碼:");</p><p> l2.setF
78、ont(new Font("宋體",Font.PLAIN,20));</p><p> p1.add(l2);</p><p> oldmima=new TextField();</p><p> oldmima.setEchoChar('*');</p><p> p1.add(oldmima);
79、</p><p> final JLabel l3=new JLabel("新 密 碼:");</p><p> l3.setFont(new Font("宋體",Font.PLAIN,20));</p><p> p1.add(l3);</p><p> newmima=new TextFie
80、ld();</p><p> newmima.setEchoChar('*');</p><p> p1.add(newmima);</p><p> final JLabel l4=new JLabel("請(qǐng)?jiān)俅屋斎胄旅艽a:");</p><p> l4.setFont(new Font(&quo
81、t;宋體",Font.PLAIN,20));</p><p> p1.add(l4);</p><p> checkmima=new TextField();</p><p> checkmima.setEchoChar('*');</p><p> p1.add(checkmima);</p>
82、<p> final JPanel p2=new JPanel();</p><p> p2.setLayout(new FlowLayout());</p><p> queding=new JButton("確定");</p><p> queding.addActionListener(this);</p>
83、<p> p2.add(queding);</p><p> quxiao=new JButton("取消");</p><p> quxiao.addActionListener(this);</p><p> p2.add(quxiao);</p><p> getContentPane().ad
84、d(p2,BorderLayout.SOUTH);</p><p> setVisible(true);</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> if(e.getSource()==qued
85、ing)</p><p><b> {</b></p><p> if(username.getText().length()==0)</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null, "用戶名不能為空&
86、quot;);</p><p><b> return;</b></p><p><b> }</b></p><p> if(oldmima.getText().length()==0)</p><p><b> {</b></p><p>
87、 JOptionPane.showMessageDialog(null, "舊密碼不能為空");</p><p><b> return;</b></p><p><b> }</b></p><p> if(checkmima.getText().equals(newmima.getText()
88、));</p><p><b> else</b></p><p> JOptionPane.showMessageDialog(null, "前后兩次輸入的密碼不一樣,請(qǐng)重新輸入");</p><p><b> Modify();</b></p><p> JOptio
89、nPane.showMessageDialog(null, "修改成功");</p><p><b> }</b></p><p> if(e.getSource()==quxiao)</p><p><b> {</b></p><p> dispose();</
90、p><p><b> }</b></p><p><b> }</b></p><p> private void Modify() {</p><p><b> try</b></p><p><b> {</b></
91、p><p> Class.forName(JDriver);</p><p> }catch(ClassNotFoundException e){</p><p> System.out.println("加載驅(qū)動(dòng)程序失敗");}</p><p><b> try{</b></p>
92、<p> Connection con=DriverManager.getConnection(conURL);</p><p> Statement s=con.createStatement();</p><p> String names=username.getText().trim();</p><p> String checkmima
93、s=checkmima.getText().trim();</p><p> String str="update code set 密碼='"+checkmimas</p><p> +"'where 用戶名='"+names+"'";</p><p> s.exe
94、cuteUpdate(str);</p><p> con.close();</p><p> }catch(SQLException g)</p><p><b> {</b></p><p> System.out.println("E Code"+g.getErrorCode());&l
95、t;/p><p> System.out.println("E M"+g.getMessage());</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p&g
96、t; ManagerLogin.java</p><p> import java.awt.BorderLayout;</p><p> import java.awt.Color;</p><p> import java.awt.Dimension;</p><p> import java.awt.GridLayout;<
97、;/p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.awt.event.KeyAdapter;</p><p> import java.awt.event.KeyEv
98、ent;</p><p> import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p>
99、<p> import java.sql.Statement;</p><p> import javax.swing.ImageIcon;</p><p> import javax.swing.JButton;</p><p> import javax.swing.JFrame;</p><p> import ja
100、vax.swing.JLabel;</p><p> import javax.swing.JOptionPane;</p><p> import javax.swing.JPanel;</p><p> import javax.swing.JPasswordField;</p><p> import javax.swing.J
101、TextField;</p><p> import javax.swing.SwingConstants;</p><p> import javax.swing.border.EmptyBorder;</p><p> public class ManagerLogin extends JFrame {</p><p><b&
102、gt; /**</b></p><p><b> * 用戶登錄界面</b></p><p><b> */</b></p><p> private static final long serialVersionUID = -6474653288860809180L;</p><p&
103、gt; private JPasswordField password;</p><p> private JTextField username;</p><p> private JButton login;</p><p> public ManagerLogin() {</p><p><b> super();&
104、lt;/b></p><p> final BorderLayout borderLayout = new BorderLayout();//布局方式</p><p> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉</p><p> borderLayout.setVgap(10);//設(shè)置間隔&
105、lt;/p><p> getContentPane().setLayout(borderLayout);//容器設(shè)置布局</p><p> setTitle("賓館管理員登錄");</p><p> setBounds(200, 200, 300, 200);</p><p> final JPanel panel =
106、 new JPanel();//面板</p><p> panel.setLayout(new BorderLayout());//面板設(shè)置布局</p><p> //該類提供了一個(gè)占用空間但不執(zhí)行繪制的空透明邊框。 </p><p> panel.setBorder(new EmptyBorder(0, 0, 0, 0));</p><p
107、> getContentPane().add(panel);//容器添加面板</p><p> final JPanel panel2 = new JPanel();//添加面板2,并設(shè)置面板布局的方式</p><p> final GridLayout gridLayout = new GridLayout(0, 2);</p><p> gridL
108、ayout.setHgap(5);</p><p> gridLayout.setVgap(15);</p><p> panel2.setLayout(gridLayout);</p><p> panel.add(panel2);</p><p> //添加用戶,及用戶文本框</p><p> final
109、 JLabel label = new JLabel();</p><p> label.setHorizontalAlignment(SwingConstants.CENTER);//設(shè)置標(biāo)簽內(nèi)容沿 X 軸的對(duì)齊方式。 </p><p> label.setPreferredSize(new Dimension(0, 0));//將組件的首選大小設(shè)置為常量值。</p>
110、<p> label.setMinimumSize(new Dimension(0, 0));//將組件的最大大小設(shè)置為常量值。</p><p> panel2.add(label);</p><p> label.setText("用 戶 名:");</p><p> username = new JTextField(2
111、0);</p><p> username.setPreferredSize(new Dimension(0, 0));</p><p> panel2.add(username);</p><p> //添加密碼,及密碼文本框</p><p> final JLabel label_1 = new JLabel();</p&g
112、t;<p> label_1.setHorizontalAlignment(SwingConstants.CENTER);</p><p> panel2.add(label_1);</p><p> label_1.setText("密 碼:");</p><p> password = new JPasswor
113、dField(20);</p><p> password.setEchoChar('*');//設(shè)置密碼框的回顯字符</p><p> password.addKeyListener(new KeyAdapter()</p><p><b> {</b></p><p> public void
114、 keyPressed(final KeyEvent e) //按下回車鍵有效</p><p><b> {</b></p><p> if (e.getKeyCode() == 10)</p><p> login.doClick();</p><p><b> }</b></p&g
115、t;<p><b> });</b></p><p> panel2.add(password);</p><p><b> //添加重置按鈕</b></p><p> final JPanel panel1 = new JPanel();</p><p> panel.ad
116、d(panel1, BorderLayout.SOUTH);</p><p> login=new JButton();</p><p> login.addActionListener(new BookLoginAction());</p><p> login.setText("登錄");</p><p>
117、 panel1.add(login);</p><p><b> //添加圖片</b></p><p> final JLabel Label = new JLabel();</p><p> ImageIcon Icon=new ImageIcon("Login.jpg" );</p><p>
118、; Label.setIcon(Icon);</p><p> Label.setOpaque(true);</p><p> Label.setBackground(Color.GREEN);</p><p> Label.setPreferredSize(new Dimension(270, 65));</p><p> pan
119、el.add(Label, BorderLayout.NORTH);</p><p> setVisible(true);</p><p> setResizable(false);</p><p><b> }</b></p><p> class BookLoginAction implements Ac
120、tionListener</p><p><b> {</b></p><p> public void actionPerformed(final ActionEvent e)</p><p><b> {</b></p><p> if(e.getSource()==login)<
121、/p><p> confirm();</p><p><b> }</b></p><p> @SuppressWarnings("deprecation")</p><p> //驗(yàn)證密碼是否正確,及用戶名是否存在</p><p> private void confi
122、rm()</p><p><b> {</b></p><p> String JDriver="sun.jdbc.odbc.JdbcOdbcDriver";</p><p> String conURL="jdbc:odbc:House";</p><p><b>
123、; try{</b></p><p> Class.forName(JDriver);</p><p> }catch(ClassNotFoundException e){</p><p> System.out.println("數(shù)據(jù)庫(kù)連接成功");}</p><p><b> try&l
124、t;/b></p><p><b> {</b></p><p> Connection con=DriverManager.getConnection(conURL);</p><p> Statement s=con.createStatement();</p><p> String uname=us
125、ername.getText().trim();</p><p> String mima=password.getText().trim();</p><p> String querymima="select*from code where" +</p><p> " 用戶名='"+uname+"&
126、#39;and 密碼='"+mima+"'";</p><p> ResultSet rs=s.executeQuery(querymima);</p><p> if(rs.next())</p><p><b> {</b></p><p> new MainFr
127、ame();</p><p> dispose();</p><p> con.close();</p><p><b> }</b></p><p><b> else{</b></p><p> JOptionPane.showMessageDialog(nul
128、l, "該用戶不存在,請(qǐng)檢查您的輸入");</p><p><b> }</b></p><p> username.setText(null);</p><p> password.setText(null);</p><p> }catch(SQLException ex){ ex.pri
129、ntStackTrace();}</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> UseManege.java</p><p> import java.awt
130、.Container;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.sql.Connection;</p><p> import java.sql.Dri
131、verManager;</p><p> import java.sql.ResultSet;</p><p> import java.sql.SQLException;</p><p> import java.sql.Statement;</p><p> import javax.swing.ImageIcon;</p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高級(jí)語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 高級(jí)語(yǔ)言課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 高級(jí)語(yǔ)言課程設(shè)計(jì)
- 高級(jí)語(yǔ)言課程設(shè)計(jì)---教務(wù)管理程序
- 房產(chǎn)管理系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---房產(chǎn)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)——房產(chǎn)管理系統(tǒng)
- 計(jì)算機(jī)高級(jí)語(yǔ)言課程設(shè)計(jì)(c)學(xué)生成績(jī)管理系統(tǒng)
- 計(jì)算機(jī)高級(jí)語(yǔ)言課程設(shè)計(jì)
- 《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)大綱
- 高級(jí)語(yǔ)言課程設(shè)計(jì)--職工工作量統(tǒng)計(jì)系統(tǒng)
- 《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--單位房產(chǎn)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-賓館管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--宿舍管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)車票管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--車票管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--銷售管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論