瓜果蔬菜这里查小系统

时间:2017年12月

阶段:大二上学期

背景:JAVA程序设计基础课设

名称:瓜果蔬菜这里查小系统(未删减版)

实现功能点

①用户注册:检测账号的唯一性,并插入数据库

②用户登入:防数据库注入问题

③游客登入:权限限制,文字提示注册,以增加本系统用户量

④找回密码:通过密匙找回,双重保险

⑤身份与权限:游客,会员,管理员,三级身份

⑥内容搜索:会员专属,可寻找喜欢的瓜果蔬菜图片和信息

⑦用户管理:管理员可通过表格查询用户信息及删除更改用户信息

⑧信息修改:用户可修改基本信息和安全信息

⑨界面切换:更多人性化的设计

⑩界面美化:半透明效果、居中显示、置顶显示等

项目测试

1、开始界面,用户可以选择游客登入、用户登入或者注册登入来进入系统

2、开始界面打开时,数据库的连接也在后台在进行中,若连接失败则会弹出连接失败的对话框,点击确认后,此程序将会被关闭。因为程序必须使用数据库,所以这样设置。

3、再次运行程序,点击“注册加入我们”,会在开始面板的中间弹出注册面板,注册面板是半透明效果,且会一直至于开始面板的顶端,此时如果不点击取消按键,其开始面板是不可被操作的,当点击取消按键后,注册面板会消失,开始面板会变成可操作面板,注册面板重置按键可以把输入文本框的内容全部清空,确定按键则是确定注册。

4、注册成功后自动弹出登入页面,登入页面的基本样式和注册页面样式相同,透明和按键效果等方面,“?”按键是找回密码用的,在后面有详细介绍。

5、注册成功后数据库里有添加一行用户名为155231的字段

6、再次注册相同账号则会弹出账号名是不可重复注册的消息框

7、检验输入文本框内容是否为空,空则弹出账号和密码不能为空消息框提示,不可进行登入操作

8、点击开始界面的做一名小游客安按钮,进入游客界面,且关闭开始界面,游客不可以更改个人信息,不可以使用搜索功能,只能左右浏览,并且可见多处都有提示要进行注册的文字。

9、浏览至最后一份或者第一份时会有相应提示

10、点击改改自己,弹出一个半透明界面,可以更改自己的普通信息(个人资料)和安全信息(密码和密匙),如果普通信息留白则会保持原来的信息,不会被空值覆盖掉,当更改成功后则会跳到登入界面,需要再次进行登入操作,达到更高安全级别。

设计心得

界面的美观将必然会提高用户的使用积极性,半透明效果切实令人有好感,但这视乎还远远不够。书到用时方知少,Java能成为现今最流行的编程语言,魅力如此之大,其内容肯定不简,课堂重要,但自学更重要,用心了才能让自己的程序行云流水少有bug

      一个人,一句句代码,慢慢的敲,许多天…..基本框架的实现,页面内容深入实现,终于满足暂时想要求,而它永远不能称之为成品,人的欲望如果满足了,那等待他的将只有退步,它一直会是我的半成品。好的程序不会是几天就可以完成的,需要的是时间,慢慢的琢磨,慢慢的改进。

     学习。

工程代码

  1 package test01;
  2 import java.awt.BorderLayout;
  3 import java.awt.Color;
  4 import java.awt.Dimension;
  5 import java.awt.Font;
  6 import java.awt.GridLayout;
  7 import java.awt.event.ActionEvent;
  8 import java.awt.event.ActionListener;
  9 import java.io.IOException;
 10 import java.io.PrintWriter;
 11 import java.io.StringWriter;
 12 import java.sql.Connection;
 13 import java.sql.DriverManager;
 14 import java.sql.ResultSet;
 15 import java.sql.SQLException;
 16 import java.sql.Statement;
 17 import javax.swing.ImageIcon;
 18 import javax.swing.JButton;
 19 import javax.swing.JComboBox;
 20 import javax.swing.JFrame;
 21 import javax.swing.JLabel;
 22 import javax.swing.JOptionPane;
 23 import javax.swing.JPanel;
 24 import javax.swing.JPasswordField;
 25 import javax.swing.JScrollPane;
 26 import javax.swing.JSplitPane;
 27 import javax.swing.JTable;
 28 import javax.swing.JTextArea;
 29 import javax.swing.JTextField;
 30 class Start{
 31     private JFrame jfde;
 32     private JFrame jfbu1;
 33     private JFrame jfbu2;
 34     private JFrame jfmain;
 35     private JFrame jfbu3g;
 36     private JTextField jtbu1user;
 37     private JPasswordField jtbu1pasw;
 38     private JTextField jtbu2user;
 39     private JPasswordField jtbu2pasw;
 40     private JPasswordField jtbu2pasw2;
 41     private  JTextField  jtbu2nam;
 42     private JTextField jtbu2age;
 43     private JComboBox jcbu2sex;
 44     private boolean boo=false;
 45     Connection ct=null;
 46     Statement st=null;
 47     private String dbuser;
 48     public Start(){
 49     jfde=new JFrame("瓜果蔬菜这里查登入");
 50     jfde.setSize(600, 400);
 51     jfde.setResizable(false);//不可缩放
 52     jfde.setLocationRelativeTo(null);//居中显示
 53     JLabel jlde=new JLabel(new ImageIcon("picture/jfde.jpg"));
 54     jlde.setBounds(0, 0,jfde.getWidth(), jfde.getWidth());
 55     JPanel jpde=new JPanel();
 56     JButton bu1=new JButton("已有账号登入");
 57     JButton bu2=new JButton("注册加入我们");
 58     JButton bu3=new JButton("做一名小游客");
 59     jpde.add(bu3);
 60     jpde.add(bu1);
 61     jpde.add(bu2);
 62     jfde.add(jpde,"South");
 63     jfde.add(jlde);
 64     jfde.setVisible(true);
 65     new Db();//数据库加载
 66     bu1.addActionListener(new Bu1());
 67     bu2.addActionListener(new Bu2());
 68     bu3.addActionListener(new Bu3());}
 69     class Bu1 implements ActionListener{
 70         private ActionEvent e;
 71         public Bu1(int x){actionPerformed(e);}
 72         public Bu1(){};
 73         @Override
 74         public void actionPerformed(ActionEvent e) {
 75             jfde.setEnabled(false);//设置不可执行窗口setOpacity(0.8f);
 76             jfbu1=new JFrame();
 77             jfbu1.setUndecorated(true);
 78             jfbu1.setOpacity(0.8f);
 79             JPanel jpbu1=new JPanel();
 80             jpbu1.setBackground(Color.green);
 81             jpbu1.setLayout(new GridLayout(4,1));//纵,横
 82             JPanel jpbu5=new JPanel();
 83             JPanel jpbu3=new JPanel();//密码
 84             JPanel jpbu6=new JPanel();
 85             JPanel jpbu4=new JPanel();//按键
 86             JPanel JPbu7=new JPanel();
 87             JPbu7.add(new JLabel("登入"));
 88             JLabel jlbu1user=new JLabel("账号: ");
 89              jtbu1user=new JTextField(12);
 90             JLabel jlbu1pasw=new JLabel("密码: ");
 91             jtbu1pasw=new JPasswordField(12);
 92             JButton jbbu1hui=new JButton("?");//找回密码
 93             JButton jbbu1hxx=new JButton(" ");
 94             jbbu1hxx.setEnabled(false);
 95             jpbu5.add(jlbu1user);
 96             jpbu5.add(jtbu1user);
 97             jpbu5.add(jbbu1hxx);
 98             jpbu3.add(jlbu1pasw);
 99             jpbu3.add(jtbu1pasw);
100             jpbu3.add(jbbu1hui);
101             jpbu1.add(JPbu7);
102             jpbu1.add(jpbu5);
103             jpbu1.add(jpbu3);
104             jpbu1.add(jpbu6);
105             JButton jbbu1sub=new JButton("确定");
106             JButton jbbu1res=new JButton("重置");
107             JButton jbbu1bac=new JButton("取消");
108             jpbu4.add(jbbu1res);
109             jpbu4.add(jbbu1sub);
110             jpbu4.add(jbbu1bac);
111             jfbu1.add(jpbu1,"Center");
112             jfbu1.add(jpbu4, "South");
113             jfbu1.setResizable(false);//不可缩放
114             jfbu1.setSize(300, 200);
115             jfbu1.setLocationRelativeTo(jfde);//设置基于jfde窗体居中
116             jfbu1.setAlwaysOnTop(true);//窗体顶端显示
117             jfbu1.setVisible(true);
118             jbbu1res.addActionListener(new Jbbu1res());
119             jbbu1bac.addActionListener(new Jbbu1bac());
120             jbbu1sub.addActionListener(new Jbbu1sub());
121             jbbu1hui.addActionListener(new Jbbu1hui());
122         }}
123     class Bu2 implements ActionListener{
124         private ActionEvent e;
125         public Bu2(){};
126         public Bu2(int i){actionPerformed(e);}
127         public void actionPerformed(ActionEvent e){
128             jfde.setEnabled(false);//设置不可执行窗口setOpacity(0.8f);
129             jfbu2=new JFrame();
130             jfbu2.setUndecorated(true);
131             jfbu2.setOpacity(0.8f);
132             JPanel jpbu1=new JPanel();
133             jpbu1.setBackground(Color.green);
134             jpbu1.setLayout(new GridLayout(7,1));//纵,横
135             JPanel jpbu2=new JPanel();
136             JPanel jpbu5=new JPanel();
137             JPanel jpbu3=new JPanel();
138             JPanel jpbu6=new JPanel();
139             JPanel jpbu4=new JPanel();
140             JPanel jpbu7=new JPanel();
141             JPanel jpbu8=new JPanel();
142             jpbu8.add(new JLabel("注册"));
143             jpbu1.add(jpbu8);
144             JLabel jlbu2user=new JLabel("账号: ");
145              jtbu2user=new JTextField(12);
146             JLabel jlbu2pasw=new JLabel("密码: ");
147              jtbu2pasw=new JPasswordField(12);
148             JLabel jlbu2pasw2=new JLabel("确认密码: ");
149              jtbu2pasw2=new JPasswordField(12);
150              JLabel jlbu2nam=new JLabel("昵称: ");
151              jtbu2nam=new JTextField(12);
152             JLabel  jlbu2sex=new JLabel("性别: ");
153             String str[]={"","男","女"};
154             jcbu2sex=new JComboBox(str);
155             //jcbu2sex.setEditable(true);
156             JLabel jlbu2age=new JLabel("年龄: ");
157             jtbu2age=new JTextField(3);
158             jpbu2.add(jlbu2user);
159             jpbu2.add(jtbu2user);
160             jpbu3.add(jlbu2pasw);
161             jpbu3.add(jtbu2pasw);
162             jpbu3.add(jlbu2pasw2);
163             jpbu3.add(jtbu2pasw2);
164             jpbu4.add(jlbu2nam);
165             jpbu4.add(jtbu2nam);
166             jpbu5.add(jlbu2sex);
167             jpbu5.add(jcbu2sex);
168             jpbu6.add(jlbu2age);
169             jpbu6.add(jtbu2age);
170             jpbu1.add(jpbu2);
171             jpbu1.add(jpbu3);
172             jpbu1.add(jpbu4);
173             jpbu1.add(jpbu5);
174             jpbu1.add(jpbu6);
175             JButton jbbu2sub=new JButton("确定");
176             JButton jbbu2res=new JButton("重置");
177             JButton jbbu2bac=new JButton("取消");
178             jpbu7.add(jbbu2res);
179             jpbu7.add(jbbu2sub);
180             jpbu7.add(jbbu2bac);
181             jfbu2.add(jpbu1,"North");
182             jfbu2.add(jpbu7, "South");
183             jfbu2.setResizable(false);//不可缩放
184             jfbu2.setSize(400, 250);
185             jfbu2.setLocationRelativeTo(jfde);//设置基于jfde窗体居中
186             jfbu2.setAlwaysOnTop(true);//窗体顶端显示
187             jfbu2.setVisible(true);
188            jbbu2res.addActionListener(new Jbbu2res());
189            jbbu2bac.addActionListener(new Jbbu2bac());
190            jbbu2sub.addActionListener(new Jbbu2sub());}    }
191     class Bu3 implements ActionListener{
192         private int nut=0;
193         private int dbzong=0;
194         private ActionEvent e;
195         public Bu3(){};
196         public Bu3(int i){actionPerformed(e);}
197         @Override
198         public void actionPerformed(ActionEvent e) {   //登入主********************************
199             String usnc = null;
200             String ussex=null;
201             int usage=0;
202             String usqm=null;
203             String ussf=null;
204             if(boo==true){
205                 boo=false;
206             }else{dbuser="11768";}
207             jfde.dispose();
208         try {
209             ResultSet re=st.executeQuery("select *from t_userx where 用户名=‘"+dbuser+"‘");
210             if(re.next()){
211                 usnc=re.getString("昵称");
212                 ussex=re.getString("性别");
213                 usage=re.getInt("年龄");
214                 usqm=re.getString("签名");
215                 ussf=re.getString("身份");
216             }re.close();//关闭
217         } catch (SQLException e1) {
218             e1.printStackTrace();
219         }
220         jfmain=new JFrame("瓜果蔬菜这里查");
221         jfmain.setExtendedState(JFrame.MAXIMIZED_BOTH);
222         JSplitPane jspouter=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);
223         JSplitPane jspinner=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);
224         JPanel jp1=new JPanel();
225         jp1.setLayout(new GridLayout(7,1));//纵,横
226         JPanel jpim=new JPanel();
227         JButton jb1=new JButton(new ImageIcon("picture/jfmain_user.jpg"));
228         jpim.add(jb1);
229         jb1.setBackground(Color.blue);
230         JLabel jl1=new JLabel("^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^");
231         jp1.add(jl1);
232         jp1.add(jpim);
233         JPanel jpusem=new JPanel();
234         jpusem.setLayout(new GridLayout(4,1));
235         JLabel jln1=new JLabel("             "+usnc.trim());
236         jln1.setFont(new Font("华文行楷",Font.BOLD,24));
237         JLabel jln2=new JLabel("账    号:"+dbuser.trim());
238         JLabel jln3=new JLabel("身    份:"+ussf.trim());
239         JLabel jln4=new JLabel("年    龄:"+usage);
240         JLabel jln5=new JLabel("性    别:"+ussex.trim());
241         JLabel jln6=new JLabel("签    名:"+usqm.trim());
242         JPanel jpjsem=new JPanel();
243         JPanel jpj=new JPanel();
244         jpjsem.setLayout(new GridLayout(4,1));
245         jpjsem.add(jln5);
246         jpjsem.add(jln6);
247         jpusem.add(jln1);
248         jpusem.add(jln2);
249         jpusem.add(jln3);
250         jpusem.add(jln4);
251         jp1.add(jpusem);
252         jp1.add(jpjsem);
253         JPanel jpys=new JPanel();
254         if(ussf.trim().equals("管理员")){
255             JPanel jpzk=new JPanel();
256             String[][] struse=new String[100][7];
257              String []names={"用户名","密码","昵称","年龄","性别","身份","签名"};
258              int i=0,j=0,x=0;
259              try {
260                 ResultSet regl=st.executeQuery("select *from t_userx");
261                 while(regl.next()){
262                     if(x==0){x++;continue;}
263                     struse[i][j]=regl.getString("用户名");j++;
264                     struse[i][j]=regl.getString("密码");j++;
265                     struse[i][j]=regl.getString("昵称");j++;
266                     struse[i][j]=String.valueOf(regl.getInt("年龄"));j++;
267                     struse[i][j]=regl.getString("性别");j++;
268                     struse[i][j]=regl.getString("身份");j++;
269                     struse[i][j]=regl.getString("签名");j++;i++;j=0;}
270                 i=0;j=0;
271                 x=0;
272                 regl.close();//关闭
273             } catch (SQLException e1) {
274                 e1.printStackTrace();}
275             JTable table=new JTable(struse,names);
276             table.setPreferredScrollableViewportSize(new Dimension(1000,900));
277             JScrollPane scll=new JScrollPane(table);
278             jpzk.add(scll);
279             JButton jbsc=new JButton("删除用户");
280             jpys.add(jpzk);
281             jpys.add(jbsc);
282             jbsc.addActionListener(new ActionListener(){
283                 public void actionPerformed(ActionEvent e) {
284                     String inxx=JOptionPane.showInputDialog(null,"请输入需要删除的用户名:","删除用户",JOptionPane.QUESTION_MESSAGE);
285                     if(inxx!=null&&Integer.parseInt(inxx)!=1){
286                         try {
287                             ResultSet re = st.executeQuery("select *from t_userx where 用户名=‘"+inxx+"‘");
288                             if(!re.next()){
289                                 JOptionPane.showMessageDialog(null,"查找失败,请重新输入");
290                             }else{
291                                 try {
292                                     int yongh=st.executeUpdate("delete from t_userx where 用户名=‘"+inxx+"‘");
293                                     if(yongh==1){JOptionPane.showMessageDialog(null, "删除成功,再次进入此页将更新表格");}
294                                 } catch (SQLException e1) {
295                                     e1.printStackTrace();
296                                 }}
297                         } catch (SQLException e1) {
298                             e1.printStackTrace();}}}});}else{
299         jpys.setLayout(new BorderLayout());
300
301         JPanel jpss=new JPanel();
302         jpss.setLayout(new GridLayout(3,1));
303         JPanel jpss0=new JPanel();
304         JLabel jlss=new JLabel("搜索想要的         (游客无搜索功能,快加入我们吧)   :");
305         JButton jbss=new JButton("搜索");
306         JTextField jtss=new JTextField(12);
307         jpss0.add(jlss);
308         jpss0.add(jtss);
309         jpss0.add(jbss);
310         jpss.add(jpss0);
311         JLabel jlzk=new JLabel("-----添加、收藏等更多功能,赶紧注册上车-----");
312         JLabel jlzk2=new JLabel("");
313         jpss.add(jlzk);
314         jpss.add(jlzk2);
315         jpys.add(jpss,"North");
316         JPanel jpnr=new JPanel();
317         JLabel jlim=new JLabel(new ImageIcon("picture/0.jpg"));
318         jlim.setBounds(0, 0,jlim.getWidth(), jlim.getWidth());
319         jpnr.add(jlim);
320         JTextArea jta=new JTextArea("信息:\n\n",20,20);
321         jta.setEditable(false);
322         jta.setLineWrap(true);
323         JScrollPane jsp=new JScrollPane(jta);//滚动条
324         jpnr.add(jta);
325         jpys.add(jpnr,"Center");
326         JPanel jpbt=new JPanel();
327         JButton jbsan=new JButton("上一份");
328         JButton jbxia=new JButton("下一份");
329         if(ussf.trim().equals("会员")){
330             jlss.setText("  在这里找找自己想要的:    ");
331             jlzk.setText("-----欢迎来到这美妙的瓜果蔬菜世界-----");
332             JPanel jpzk1=new JPanel();
333             JPanel jpzk2=new JPanel();
334             JPanel jpgai=new JPanel();
335             JPanel jpjg=new JPanel();
336             JButton jbbu3g=new JButton("改改自己");
337             JButton jbbu3d=new JButton("切换账号");
338             jp1.add(jpzk1);
339             jp1.add(jpzk2);
340             jpgai.add(jbbu3g);
341             jpgai.add(jbbu3d);
342             jpjg.add(jbbu3d);
343             jpjg.add(jbbu3g);
344             jp1.add(jpjg);
345             JButton jbsc=new JButton("收藏");
346             jpbt.add(jbsc);
347             jpbt.add(new JLabel("                                                      "));
348             jpbt.add(new JLabel("                                                      "));
349             jpbt.add(jbsan);
350             jpbt.add(new JLabel("                                                      "));
351             jpbt.add(new JLabel("                                                      "));
352             jpbt.add(new JLabel("                                                      "));
353             jpbt.add(jbxia);
354             jpbt.add(new JLabel("                                                      "));
355             jpbt.add(new JLabel("                                                      "));
356             JButton jbtj=new JButton("添加");
357             jpbt.add(jbtj);
358             jbbu3g.addActionListener(new Jbbu3g());
359             jbbu3d.addActionListener(new Jbbu3d());
360             jbss.addActionListener(new ActionListener(){
361                 @Override
362                 public void actionPerformed(ActionEvent e) {
363                 if("".equals(jtss.getText())) JOptionPane.showMessageDialog(null, "搜索编号不可为空");
364                 try {
365                     ResultSet rsss = st.executeQuery("select *from t_fruit1 where 序号="+jtss.getText().trim());
366                         if(rsss.next()){
367                             jlzk2.setText("             唯一编号:"+rsss.getString("序号").trim()+"                                                  名称:"+rsss.getString("名称").trim());
368                             jlim.setIcon(new ImageIcon("picture/"+rsss.getString("文件路径").trim()));
369                             jta.setText("信息:\n\n   "+rsss.getString("信息").trim());
370                             }else{
371                             JOptionPane.showMessageDialog(null,"查找失败,请重新输入");
372                     }
373                 } catch (SQLException e1) {
374                     // TODO 自动生成的 catch 块
375                     e1.printStackTrace();}    }});
376         }else{
377             JButton jbbu3j=new JButton("加入我们");
378             jpj.add(jbbu3j);//加入我们
379             jp1.add(jpj);
380             jbbu3j.addActionListener(new Jbbu3j());//注册账号
381
382             jpbt.add(jbsan);
383             jpbt.add(new JLabel("                                                      "));
384             jpbt.add(new JLabel("                                                      "));
385             jpbt.add(new JLabel("                                                      "));
386             jpbt.add(jbxia);
387         }
388         jpys.add(jpbt,"South");
389
390         jbxia.addActionListener(new ActionListener(){
391
392             @Override
393             public void actionPerformed(ActionEvent e) {
394                 nut++;
395                 try {
396                     ResultSet recoun=st.executeQuery("select count(序号)conu from t_fruit1");
397                     if(recoun.next()){dbzong=recoun.getInt("conu");}
398
399                     if(nut==1&&nut<=dbzong){
400                     ResultSet rsde1 = st.executeQuery("select top 1 *from t_fruit1");
401
402                     if(rsde1.next()){
403                         jlzk2.setText("             唯一编号:"+rsde1.getString("序号").trim()+"                                                   名称:"+rsde1.getString("名称").trim());
404                         jlim.setIcon(new ImageIcon("picture/"+rsde1.getString("文件路径").trim()));
405                         jta.setText("信息:\n\n   "+rsde1.getString("信息").trim());
406
407                         }
408                 }else if(nut>1&&nut<=dbzong){
409
410                    ResultSet rsde1 = st.executeQuery("select top "+nut+" *from t_fruit1 where 序号 not in(select top "+(nut-1)+" 序号 from t_fruit1)");
411                     if(rsde1.next()){
412                         jlzk2.setText("             唯一编号:"+rsde1.getString("序号").trim()+"                                                    名称:"+rsde1.getString("名称").trim());
413                         jlim.setIcon(new ImageIcon("picture/"+rsde1.getString("文件路径").trim()));
414                         jta.setText("信息:\n\n   "+rsde1.getString("信息").trim());
415                 }}else{
416                     nut--;
417                     JOptionPane.showMessageDialog(null,"已经是最后份");
418                 } }catch (SQLException e2) {
419                     // TODO 自动生成的 catch 块
420                     e2.printStackTrace();
421                 }}});
422         jbsan.addActionListener(new ActionListener(){
423             public void actionPerformed(ActionEvent e){
424                 if(nut!=0)nut--;
425                 if(nut>0){
426                     try {
427                         ResultSet recoun=st.executeQuery("select count(序号)conu from t_fruit1");
428                         if(recoun.next()){dbzong=recoun.getInt("conu");}
429
430                         if(nut==1&&nut<=dbzong){
431                         ResultSet rsde1 = st.executeQuery("select top 1 *from t_fruit1");
432                         if(rsde1.next()){
433                             jlzk2.setText("             唯一编号:"+rsde1.getString("序号").trim()+"                                                  名称:"+rsde1.getString("名称").trim());
434                             jlim.setIcon(new ImageIcon("picture/"+rsde1.getString("文件路径").trim()));
435                             jta.setText("信息:\n\n   "+rsde1.getString("信息").trim());
436
437                             }
438                     }else if(nut>1&&nut<=dbzong){
439
440                        ResultSet rsde1 = st.executeQuery("select top "+nut+" *from t_fruit1 where 序号 not in(select top "+(nut-1)+" 序号 from t_fruit1)");
441                         if(rsde1.next()){
442                             jlzk2.setText("             唯一编号:"+rsde1.getString("序号").trim()+"                                                    名称:"+rsde1.getString("名称").trim());
443                             jlim.setIcon(new ImageIcon("picture/"+rsde1.getString("文件路径").trim()));
444                             jta.setText("信息:\n\n   "+rsde1.getString("信息").trim());}}else{
445                         nut=1;
446                         JOptionPane.showMessageDialog(null,"已经是第一份");
447                     } }catch (SQLException e2) {
448                     e2.printStackTrace();}
449                 }else{
450                     nut=1;
451                     JOptionPane.showMessageDialog(null,"已经是第一份");
452     }}});}
453         jspouter.setLeftComponent(jp1);
454         jspouter.setRightComponent(jspinner);
455         jspinner.setTopComponent(jpys);
456         JPanel jpyx=new JPanel();
457         jpyx.setLayout(new GridLayout(4,1));
458         jpyx.add(new JLabel("开  发  者:东小东"));
459         jpyx.add(new JLabel("项目名称:瓜果蔬菜这里查"));
460         jpyx.add(new JLabel("时        间:2017-12-16"));
461         jspinner.setBottomComponent(jpyx);
462         jspinner.setDividerLocation(900);
463         jspinner.setDividerSize(4);
464         jspouter.setDividerSize(4);
465         jfmain.add(jspouter);
466         jfmain.setVisible(true);}}
467 class Jbbu1res implements ActionListener{
468     @Override
469     public void actionPerformed(ActionEvent e) {
470         jtbu1user.setText("");
471         jtbu1pasw.setText("");}}
472 class Jbbu1bac implements ActionListener{
473     @Override
474     public void actionPerformed(ActionEvent e) {
475     jfbu1.dispose();
476     jfde.setEnabled(true);//可执行窗口
477     }    }
478 class Jbbu1sub implements ActionListener{
479 public void actionPerformed(ActionEvent e){
480                                                                //登入*-****************************
481     if(jtbu1user.getText().equals("")||String.valueOf(jtbu1pasw.getPassword()).equals("")){
482         jfbu1.setVisible(false);
483         JOptionPane.showMessageDialog(null,"账号和密码不能为空");
484         jfbu1.setVisible(true);
485     }else{
486 try {
487     ResultSet rsde=st.executeQuery("select 密码 from t_userx where 用户名=‘"+jtbu1user.getText()+"‘");
488     if(rsde.next()){
489         String pass=rsde.getString("密码");
490         if(pass.trim().equals(String.valueOf(jtbu1pasw.getPassword()).trim())){
491             boo=true;
492             dbuser=jtbu1user.getText();
493             jfbu1.dispose();
494             new Bu3(1);
495         }else{
496             jfbu1.setVisible(false);
497             JOptionPane.showMessageDialog(null, "密码错误,请重新输入");
498             jfbu1.setVisible(true);
499         }
500         }else{
501             jfbu1.setVisible(false);
502             JOptionPane.showMessageDialog(null,"账号不存在,请重新输入");
503             jfbu1.setVisible(true);}
504 } catch (SQLException e1) {
505     e1.printStackTrace();
506 }}}    }
507 class Jbbu1hui implements ActionListener{
508     public void actionPerformed(ActionEvent e){//找回密码*-****************************
509     JFrame jfhui=new JFrame();
510     jfbu1.dispose();
511     jfhui.setUndecorated(true);
512     jfhui.setOpacity(0.8f);
513     jfhui.setResizable(false);//不可缩放
514     jfhui.setSize(300, 200);
515     jfhui.setLocationRelativeTo(jfde);//设置基于jfde窗体居中
516     JPanel jpbu1=new JPanel();
517     jpbu1.setLayout(new GridLayout(5,1));//纵,横
518     JPanel jpbu3=new JPanel();
519     JPanel jpbu4=new JPanel();
520     JPanel jpbu5=new JPanel();
521     JPanel jpbu6=new JPanel();
522     JPanel jpbu7=new JPanel();
523     JLabel jl1=new JLabel("找回密码");
524     jpbu1.add(jl1);
525     JLabel jlx=new JLabel("账号");
526     JTextField jtx=new JTextField(12);
527     jpbu3.add(jlx);
528     jpbu3.add(jtx);
529     jpbu1.add(jpbu3);
530     JLabel jlps=new JLabel("密匙");
531     JPasswordField jtps=new JPasswordField(12);
532     jpbu4.add(jlps);
533     jpbu4.add(jtps);
534     jpbu1.add(jpbu4);
535     jpbu1.add(jpbu7);
536     JButton jbsub=new JButton("确定");
537     JButton jbbac=new JButton("取消");
538     jpbu5.add(jbsub);
539     jpbu5.add(jbbac);
540     jpbu1.add(jpbu5);
541     jfhui.add(jpbu1,"Center");
542     jfhui.add(jpbu6,"South");
543     jfhui.setAlwaysOnTop(true);//窗体顶端显示
544     jfhui.setVisible(true);
545     jbbac.addActionListener(new ActionListener(){
546         @Override
547         public void actionPerformed(ActionEvent e) {
548             jfhui.dispose();
549             jfde.setEnabled(true);//可执行窗口
550 }});
551     jbsub.addActionListener(new ActionListener(){
552         @Override
553         public void actionPerformed(ActionEvent e) {
554         ResultSet rsde;
555         try {
556             rsde = st.executeQuery("select 密码,密匙 from t_userx where 用户名=‘"+jtx.getText()+"‘");
557             if(rsde.next()){
558                 String pass=rsde.getString("密匙");
559                 String pass1=rsde.getString("密码");
560                 if(pass.trim().equals(String.valueOf(jtps.getPassword()).trim())){
561                     jfhui.dispose();
562                     JOptionPane.showMessageDialog(null,"密码为:"+pass1.trim()+"   可登入后修改密码^_^   ");
563                     jfde.setEnabled(true);//可执行窗口
564                      new Bu1(1);}else{
565                     jfhui.setVisible(false);
566                     JOptionPane.showMessageDialog(null, "密匙错误,请重新输入");
567                     jfhui.setVisible(true);    }
568                 }else{
569                     jfhui.setVisible(false);
570                     JOptionPane.showMessageDialog(null,"账号不存在,请重新输入");
571                     jfhui.setVisible(true);
572                 }} catch (SQLException e1) {
573                     e1.printStackTrace();}}});}}
574 class Jbbu2bac implements ActionListener{
575     @Override
576     public void actionPerformed(ActionEvent e) {
577         jfbu2.dispose();
578         jfde.setEnabled(true);}}
579 class Jbbu2res implements ActionListener{
580     public void actionPerformed(ActionEvent e){
581         jtbu2user.setText("");
582         jtbu2pasw.setText("");
583         jtbu2pasw2.setText("");
584         jtbu2nam.setText("");
585         jtbu2age.setText("");}}
586 class Jbbu2sub implements ActionListener{
587     public void actionPerformed(ActionEvent e){//注册********************************
588         if(jtbu2user.getText().equals("")||String.valueOf(jtbu2pasw.getPassword()).equals("")){jfbu2.setVisible(false);
589             JOptionPane.showMessageDialog(null,"账号和密码不能为空");
590             jfbu2.setVisible(true);}
591         else if(!(String.valueOf(jtbu2pasw.getPassword()).equals(String.valueOf(jtbu2pasw2.getPassword())))){
592             jfbu2.setVisible(false);
593             JOptionPane.showMessageDialog(null, "两次输入密码不一致");
594             jfbu2.setVisible(true);}
595         else{
596         try {int inx=st.executeUpdate(String.format("insert into t_userx values(‘%s‘,‘%s‘,‘%s‘,‘%s‘,%d,‘‘,‘会员‘,‘‘)",jtbu2user.getText(),String.valueOf(jtbu2pasw.getPassword()),"".equals(jtbu2nam.getText())?"NULL":jtbu2nam.getText(),"".equals(jcbu2sex.getSelectedItem())?"秘密":jcbu2sex.getSelectedItem(),("".equals(jtbu2age.getText()))?0:Integer.parseInt(jtbu2age.getText())));
597             if(inx==1){
598                 jfbu2.dispose();
599                 JOptionPane.showMessageDialog(null,"注册成功");
600                 jfde.setEnabled(true);
601                 new Bu1(1); }
602         } catch (SQLException e1) {
603             StringWriter sw=new StringWriter();
604             PrintWriter pw=new PrintWriter(sw);
605             e1.printStackTrace(pw);
606                 String strx=new String(sw.toString());
607                 if(strx.indexOf("重复键")>-1) {
608                 jfbu2.setVisible(false);
609                 JOptionPane.showMessageDialog(null,String.format("账号:%s 不可重复注册",strx.substring(strx.indexOf("重复键值为 (")+7,strx.indexOf(" )。")).trim()));
610                 jfbu2.setVisible(true);
611                 try{
612                 sw.close();
613                 pw.close();
614             } catch (IOException e11) {
615                 e11.printStackTrace();}}}    }    }}
616 class Jbbu3j implements ActionListener{
617     public void actionPerformed(ActionEvent e){
618         jfde.setVisible(true);
619         jfmain.dispose();
620         new Bu2(1);}}
621 class Jbbu3g implements ActionListener{
622     public void actionPerformed(ActionEvent e){
623         jfmain.setEnabled(false);//设置不可执行窗口setOpacity(0.8f);
624         jfbu3g=new JFrame();
625         jfbu3g.setUndecorated(true);
626         jfbu3g.setOpacity(0.9f);
627         jfbu3g.setResizable(false);//不可缩放
628         jfbu3g.setSize(750, 480);
629         jfbu3g.setLocationRelativeTo(jfmain);//设置基于jfde窗体居中
630         JPanel jpbu1=new JPanel();
631         jpbu1.setBackground(Color.green);
632         jpbu1.setLayout(new GridLayout(10,1));//纵,横
633         JPanel jpbu2=new JPanel();
634         JPanel jpbu5=new JPanel();
635         JPanel jpbu3=new JPanel();
636         JPanel jpbu6=new JPanel();
637         JPanel jpbu4=new JPanel();
638         JPanel jpbu7=new JPanel();
639         JPanel jpbu8=new JPanel();
640         JPanel jpbu9=new JPanel();
641         JPanel jpbu10=new JPanel();
642         JPanel jpbu11=new JPanel();
643         jpbu2.setBackground(Color.yellow);
644         jpbu3.setBackground(Color.yellow);
645         jpbu8.setBackground(Color.yellow);
646         jpbu4.setBackground(Color.green);
647         jpbu5.setBackground(Color.green);
648         jpbu6.setBackground(Color.green);
649         jpbu7.setBackground(Color.green);
650         jpbu9.setBackground(Color.green);
651         jpbu10.setBackground(Color.green);
652         jpbu11.setBackground(Color.green);
653         JLabel jlbiao=new JLabel("修改普通信息(留白则不会更改)");
654         jpbu2.add(jlbiao);
655         jpbu1.add(jpbu2);
656         jpbu3.add(new JLabel("账号为:"+dbuser));
657         jpbu1.add(jpbu3);
658         JLabel jlnc=new JLabel("昵称");
659         JTextField jtnc=new JTextField(12);
660         jpbu4.add(jlnc);
661         jpbu4.add(jtnc);
662         jpbu1.add(jpbu4);
663         JLabel jlxb=new JLabel("性别");
664         String str[]={"","男","女"};
665         JComboBox jcxb=new JComboBox(str);
666         jpbu5.add(jlxb);
667         jpbu5.add(jcxb);
668         jpbu1.add(jpbu5);
669         JLabel jlnl=new JLabel("年龄");
670         JTextField jtnl=new JTextField(5);
671         jpbu6.add(jlnl);
672         jpbu6.add(jtnl);
673         jpbu1.add(jpbu6);
674         JLabel jlqm=new JLabel("签名");
675         JTextField jtqm=new JTextField(24);
676         jpbu7.add(jlqm);
677         jpbu7.add(jtqm);
678         jpbu1.add(jpbu7);
679         jpbu8.add(new JLabel("修改安全信息(密码为登入使用,密匙为找回密码使用,不能为空)"));
680         jpbu1.add(jpbu8);
681         JLabel jlmm=new JLabel("密码: ");
682         JPasswordField jtmm=new JPasswordField(12);
683         JLabel jlmm2=new JLabel("确认密码: ");
684         JPasswordField jtmm2=new JPasswordField(12);
685         jpbu9.add(jlmm);
686         jpbu9.add(jtmm);
687         jpbu9.add(jlmm2);
688         jpbu9.add(jtmm2);
689         jpbu1.add(jpbu9);
690         JLabel jlms=new JLabel("密匙: ");
691         JPasswordField jtms=new JPasswordField(12);
692         JLabel jlms2=new JLabel("确认密匙: ");
693         JPasswordField jtms2=new JPasswordField(12);
694         jpbu10.add(jlms);
695         jpbu10.add(jtms);
696         jpbu10.add(jlms2);
697         jpbu10.add(jtms2);
698         jpbu1.add(jpbu10);
699         JButton jbsub=new JButton("确定");
700         JButton jbbac=new JButton("取消");
701         jpbu11.add(jbsub);
702         jpbu11.add(jbbac);
703         jfbu3g.add(jpbu11,"South");
704         jfbu3g.add(jpbu1,"Center");
705         jfbu3g.setAlwaysOnTop(true);//窗体顶端显示
706         jfbu3g.setVisible(true);
707         jbbac.addActionListener(new ActionListener(){
708             public void actionPerformed(ActionEvent e) {
709                 jfmain.setEnabled(true);//设置不可执行窗口setOpacity(0.8f);
710                 jfbu3g.dispose();}});
711         jbsub.addActionListener(new ActionListener(){
712             public void actionPerformed(ActionEvent e) {
713     if(String.valueOf(jtmm2.getPassword()).equals("")||String.valueOf(jtms.getPassword()).equals("")||String.valueOf(jtms2.getPassword()).equals("")||String.valueOf(jtmm.getPassword()).equals("")){
714                     jfbu3g.setVisible(false);
715                     JOptionPane.showMessageDialog(null,"密码和密匙不能为空");
716                     jfbu3g.setVisible(true);
717
718                 }else if(!(String.valueOf(jtmm.getPassword()).equals(String.valueOf(jtmm2.getPassword())))){
719                     jfbu3g.setVisible(false);
720                     JOptionPane.showMessageDialog(null, "两次输入密码不一致");
721                     jfbu3g.setVisible(true);
722
723                 }else if(!(String.valueOf(jtms.getPassword()).equals(String.valueOf(jtms2.getPassword())))){
724                     jfbu3g.setVisible(false);
725                     JOptionPane.showMessageDialog(null, "两次输入密匙不一致");
726                     jfbu3g.setVisible(true);}
727                     else{try {if(!(jtnc.getText().equals(""))){
728                             st.executeUpdate("update t_userx set 昵称=‘"+jtnc.getText()+"‘ where 用户名=‘"+dbuser+"‘");
729                         }
730                         if(!("".equals(jcxb.getSelectedItem()))){
731                             st.executeUpdate("update t_userx set 性别=‘"+jcxb.getSelectedItem()+"‘ where 用户名=‘"+dbuser+"‘");
732                         }
733                         if(!(jtnl.getText().equals(""))){
734                             st.executeUpdate("update t_userx set 年龄="+Integer.parseInt(jtnl.getText())+" where 用户名=‘"+dbuser+"‘");
735                         }
736                         if(!(jtqm.getText().equals(""))){
737                             st.executeUpdate("update t_userx set 签名=‘"+jtqm.getText()+"‘ where 用户名=‘"+dbuser+"‘");
738                         }
739                         st.executeUpdate("update t_userx set 密码=‘"+String.valueOf(jtmm.getPassword())+"‘ where 用户名=‘"+dbuser+"‘");
740                         st.executeUpdate("update t_userx set 密匙=‘"+String.valueOf(jtms.getPassword())+"‘ where 用户名=‘"+dbuser+"‘");
741                             jfbu3g.dispose();
742                             jfmain.dispose();
743                             JOptionPane.showMessageDialog(null,"修改成功");
744                             jfde.setEnabled(true);
745                             jfde.setVisible(true);
746                             new Bu1(1);
747                     } catch (NumberFormatException e1) {
748                         // TODO 自动生成的 catch 块
749                         e1.printStackTrace();
750                     } catch (SQLException e1) {
751                         // TODO 自动生成的 catch 块
752                         e1.printStackTrace();
753                     }}}});}}
754 class Jbbu3d implements ActionListener{
755     public void actionPerformed(ActionEvent e) {
756         jfmain.dispose();
757         jfde.setVisible(true);
758         new Bu1(1);}}
759 class Db{public Db(){
760         String url = "jdbc:sqlserver://localhost:1433;databaseName=java_datax";
761         String user="java_userx";
762         String password="123123";
763     try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//注册、加载特定的驱动程序
764         } catch (ClassNotFoundException e) {
765             JOptionPane.showMessageDialog(null,"加载数据库失败01");
766             System.exit(0);//关闭整个应用
767             e.printStackTrace();}
768         try {
769             ct=DriverManager.getConnection(url,user,password);//创建连接,创建连接Connection对象
770         } catch (SQLException e1) {
771             JOptionPane.showMessageDialog(null,"加载数据库失败02");
772             System.exit(0);//关闭整个应用
773             e1.printStackTrace();
774         }
775         try {
776             st=ct.createStatement();//创建会话对象,用Connection对象生成Statement对象
777         } catch (SQLException e3) {
778             JOptionPane.showMessageDialog(null,"加载数据库失败03");
779             System.exit(0);//关闭整个应用
780             e3.printStackTrace();
781         }}}}
782 public class Main{
783     public static void main(String arg[]){
784         new Start();}    }

原文地址:https://www.cnblogs.com/dongxiaodong/p/10806834.html

时间: 2024-10-13 01:30:22

瓜果蔬菜这里查小系统的相关文章

在PHP项目中使用Standford Moss代码查重系统

Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使用它呢? 下载Moss的PHP文件moss.php 您可以访问https://github.com/Phhere/MOSS-PHP 来下载moss.php,并将它放在您的第三方扩展库中 使用moss.php 通过下面的范例代码您就可以简单的做个moss小测试了 <?phpinclude("mo

基于宿主机制作一个小系统

一.Linux系统的启动流程 1.启动程序 Linux系统的启动流程为:POST-->BIOS(BootSequence)-->MBR(bootloader,446)--> Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab). 首先上电自检POST:它负责完成对CPU.主板.内存.软硬盘子系统.显示子系统(包括显示缓存).串并行接口.键盘.CD-ROM光驱等的检测.主要检查硬件的好坏. 紧接着就是BIOS进行硬件相关初始化,之

图书管理小系统

昨天一朋友要我帮她写个"图书管理小系统",一时嘴贱就答应了. 要求如下: 看着还可以,昨晚把基本框架写了下,今天写了一下午,接近600行,总算写完了.由于她明天就要交,我就赶了点,很多地方还没写好. 但总体来说也让我对文件输出输入有了更进一步的了解了,不过没有用结构体指针,用了的话应该可以 节约很多内存.看以后有没有时间 去完善它吧. 发几个界面看看: 先把代码贴下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #i

grub命令及小系统的制作

在计算机启动的时候,并不会像人一样直接就知道该运行操作系统,而是需要一个程序来进行引导,告诉计算机该去如何的启动系统.这个程序可以是grub程序,或者其他的程序也可以,在这里简单的介绍grub程序. grub程序分为三个部分,分别是stage1.stage1_5和stage2.其中stage1的作用是写入mbr中存储的bootloader程序,将stage1_5载入内存中,并执行,然后接下来执行的就是stage1_5了,它位于mbr之后的扇区,通过提供基本文件系统驱动让stage1中的bootl

Centos 6.8 为自己打造Linux小系统

一.前言 Linux操作系统至1991.10.5号诞生以来,就源其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在Linux内核还是开源软件等方面,都为我们后来人提供了一个良好的学习和研究环境.做为一个Linuxer,感谢各位前辈们为我们提供一个自由的空间,让我们也能够在学习的同时去研究Linux. 本文主要通过裁剪现有Linux系统,打造一个属于自己的Linux小系统,让其能够装载网卡驱动,并配置IP地址,实现网络功能. 二.原理 启动流程介绍:

图论小系统

将自己学的知识整合了一下,弄了个小的图论系统. 有关知识请看:http://blog.csdn.net/column/details/tulun.html #include <iostream> #include <stdio.h> #include <stdlib.h> #include<string.h> #include<algorithm> #include<math.h> #include<queue> #inc

JavaMail邮件发送-能发送附件和带背景音乐的邮件的小系统

原文:JavaMail邮件发送-能发送附件和带背景音乐的邮件的小系统 源代码下载地址:http://www.zuidaima.com/share/1550463633902592.htm 这里使用的是JavaMail技术,前台使用了fckeditor做邮件美化,由于只是示例,后台发送时只是将邮件保存在本地,但是可以查看 由于邮件发送页面使用了fckeditor,使杀毒软件误报,并非木马!fckeditor是官方下载的,请放心使用,如不放心,可自己下载或使用其他编辑器,不妨碍功能使用!

小白C#窗体系列-04.点名系列的小系统

这个东西其实是最简单的东西了,一个随机数一个集合一个timer控件就搞定了.本来不想写这一期的,后来有个哥们跟我说他在网上买了个抽奖系统花了几百块钱....软件发过来我一反编译...当时我就愣了...一个猥琐的非人类就这样坑了一个好骗的人类...        步入正题,逆天今天给大家带来的是点名抽奖系列的小系统,为了普遍性和简易性就没有写死直接用一个txt记录(其实写死的程序也可以改变他的一些内容,在本章节的最后会给大家一个小工具[C32Asm]) 软件下载(.NET 4.0 框架)http:

Linux学习笔记&lt;二十一&gt;——busybox制作小系统

制作流程: kernel->initrd(busybox)->rootfs(busybox) kernel:直接利用/boot/vmlinuz-`uname -r`内核镜像或手动编译生成 initrd:编译busybox,在busybox的基础上建立initrd rootfs:同样在busybox的基础上建立rootfs 一.为小系统上的新硬盘建立分区并挂载在宿主机的相应目录,以便创建修改文件. /dev/hda1    100M    boot分区    挂载在/mnt/boot /dev/