当前位置:编程学习 > JAVA >>

java语句解析

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.sql.*;

 

public class systems extends JFrame implements ActionListener

{

  static systems ss;

  JPanel panel = new JPanel();

  JLabel label1 = new JLabel("输入姓名:");

  JTextField name = new JTextField();

  JLabel label2 = new JLabel("密    码:");

  JPasswordField pwd = new JPasswordField();

  JButton Enter = new JButton("登录");

  JButton Exit = new JButton("退出");

  String url = "D:\\Systems\\title.jpg";

  ButtonGroup bgp = new ButtonGroup();

  JRadioButton stu = new JRadioButton("学生");

  JRadioButton tch = new JRadioButton("教师");

 

  public systems()

  {

       super("登录系统");

       this.setResizable(false);

      JLabel img = new JLabel(new ImageIcon(url));

       img.setBounds(0,0,500,100);

       panel.add(img);

       stu.setBounds(165,210,70,20);

       tch.setBounds(265,210,70,20);

       bgp.add(stu);

       bgp.add(tch);

       panel.add(stu);

       panel.add(tch);

       Enter.setBounds(150,250,80,20);

       Exit.setBounds(270,250,80,20);

       Enter.addActionListener(this);

       Exit.addActionListener(this);

       panel.add(Enter);

       panel.add(Exit);

        panel.setLayout(null);

       this.add(panel);

       label1.setBounds(135,130,100,25);

       panel.add(label1);

        name.setBounds(265,130,100,25);

       panel.add(name);

       label2.setBounds(135,165,100,25);

       panel.add(label2);

        pwd.setBounds(265,165,100,25);

       panel.add(pwd);

       this.setBounds(100,100,500,350);

       this.setVisible(true);

       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

 

  public void actionPerformed(ActionEvent e)

  {

       if(e.getSource()==Enter)

       {

             String username , password;

             username = name.getText();

           password = pwd.getText();

             try

             {

                  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

             }

             catch (ClassNotFoundException ce)

             {

                  JOptionPane.showMessageDialog(ss,ce.getMessage());

             }

             if(stu.isSelected())

             {

                  try

                 {

                        Connection con = DriverManager.getConnection("jdbc:odbc:sysdb","sa","");

                      Statement stmt = con.createStatement();

                      ResultSet rs = stmt.executeQuery("select * from STU");

                      while(rs.next())

                      {

                          if((rs.getString("ID").equals(username))&&(rs.getString("Pwd").equals(password)))

                            {       

                                   JOptionPane.showMessageDialog(ss,"登陆成功");

                                   Students stu = new Students();

                            }

                            else

                            {

                                  JOptionPane.showMessageDialog(ss,"登录失败");

                            }

                      }

                      rs.close();

                      stmt.close();

                 }

                 catch (SQLException se)

                 {

                      JOptionPane.showMessageDialog(ss,se.getMessage());

                 }

             }

             else if(tch.isSelected())

             {

                  try

                  {

                        Connection con = DriverManager.getConnection("jdbc:odbc:systchdb","sa","");

                        Statement stmt = con.createStatement();

                        ResultSet rs = stmt.executeQuery("select * from TCH");

                        while(rs.next())

                        {

                          if((rs.getString("ID").equals(username))&&(rs.getString("Pwd").equals(password)))

                              {

                                   JOptionPane.showMessageDialog(ss,"登陆成功");

                              }

                              else

                              {

                                   JOptionPane.showMessageDialog(ss,"登录失败");

                              }

                        }

                  }

                  catch (SQLException se)

                  {

                        JOptionPane.showMessageDialog(ss,se.getMessage());

                  }

             }

       }

       else

       {

             System.exit(0);

       }

  }

 

  public static void main(String[] args)

  {

       systems sys = new systems();

  }

}

 

帮忙解释一下加粗的语句,与详细越好!拜托各位高手了

 

 

 

追问:我还没学数据库
答案:
这个我只能说把书好好看一下,从头到尾,竟然你已经能做到数据库连接,必定这个课已经上的差不多了,对于图形化那块,对于类成员变量,对于this,对于如何实例化对象的两个方法(一个是new,一个是Class类的forname方法),对于继承,对于实现抽象类(要实现所有未实现的方法),这个你要加劲了,这个上面都是这个意思。
1.声明类systems的静态变量为ss
2.初始化一个JPanel(面板)控件,名称为panel
3.定义一个类型为字符串的url变量,并赋值为"D:\\Systems\\title.jpg"
4.初始化一个JLabel(标签)控件,名称为img,并将图片赋值给该控件
5.设置img的X坐标、Y坐、标宽、高
6.在panel添加img控件
7.在主窗体上添加panel控件
8.监听事件
9.加载JDBC连接数据库驱动
10.显示消息框
11.定义一个Connection连接con
12.定义一个结果集rs,并进行数据库查询.
13.异常修理.弹出消息框.

public class systems extends JFrame implements ActionListener 这是你创建的systems 类并且实现了ActionListener事件监听接口,所以static systems ss中的ss就是静态的systems对象,static表示静态.JPanel 为javax.swing包中的,为面板容器,可以加入到JFrame中 , 它自身是个容器,可以把其他compont加入到JPanel中,如JButton,JTextArea,JTextFiled等,另外也可以在它上面绘图, JPanel panel = new JPanel();就是实例化一个,Jpanel ,即panel;

String url = "D:\\Systems\\title.jpg";这个是获得图片的路径.用于下面的JLabel

JLabel 对象可以显示文本、图像或同时显示二者.JLabel img = new JLabel(new ImageIcon(url));创建具有指定图像title.jpg的 JLabel 实例img

img.setBounds(0,0,500,100);设置img的大小.

panel.add(img);把img添加到panel面板上.

this.add(panel);systems 类 继承了JFrame ,就是把panel添加到当前的systems类中,在你这里就是ss.

 public void actionPerformed(ActionEvent e)这个方法是ActionLisener事件监听接口中的方法,systems类实现了它就必须实现它的方法.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");这是java的反射机制Class类的应用加载sun.jdbc.odbc.JdbcOdbcDriver这个驱动程序,用来连接数据库.

JOptionPane.showMessageDialog(ss,ce.getMessage());假如sun.jdbc.odbc.JdbcOdbcDriver这个驱动程序没有找到则以对话框的形式显示错误信息.

Connection con = DriverManager.getConnection("jdbc:odbc:sysdb","sa","");获得一个数据库的连接,jdbc:odbc:sysdb这个是数据库的路径吧. sa,是连接数据库的用户名,""这个是密码,在这里密码为空。

ResultSet rs = stmt.executeQuery("select * from STU");在建立连接的基础上,对数据库进行操作,这里是查询STU表中的数据,并把结果返回给rs,用来进一步的显示.

catch (SQLException se)

                  {

                        JOptionPane.showMessageDialog(ss,se.getMessage());假如数据库的操作有误,则以对话框的形式显示错误信息.

大概就这样吧,你参考一下,希望对你有帮助..

static systems ss;            // 静态类 属性          

JPanel panel = new JPanel(); // 实例化一个容器,说直白点就是装东西盒子


String url = "D:\\Systems\\title.jpg"; // 图片路径


JLabel img = new JLabel(new ImageIcon(url)); // 用一个JLabel 显示上面那个地址的图片


img.setBounds(0,0,500,100); // 设置坐标和大小 (X,Y,width , height)


panel.add(img); // 在上面那个容器里面,添加显示的图片


this.add(panel); // 这个类添加这个容器(this 代表本类,在哪用this,this就代表那个类)


public void actionPerformed(ActionEvent e) // 方法,处理按钮的点击


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 反射,加载odbc数据源(这个比较难理解)


JOptionPane.showMessageDialog(ss,ce.getMessage()); // 弹一个对话框出来,


Connection con = DriverManager.getConnection("jdbc:odbc:sysdb","sa",""); // 得到一个与数据库连接的通道。


ResultSet rs = stmt.executeQuery("select * from STU"); // 得到数据库通道中返回的结果集


catch (SQLException se) // 处理语句,假如在catch头上的"try{ ... }"里面的代码,出现错误那么就转到catch的"{ ... }" 里面去处理。


JOptionPane.showMessageDialog(ss,se.getMessage()); // 弹一个对话框

上一个:java好学吗????
下一个:怎么学习JAVA

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,