Java-最原始的开发模式,数据模型+主界面(半成版)

1!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//主界面
import javax.swing.*;
import com.mysql.jdbc.PreparedStatement;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test2 extends JFrame implements ActionListener{
JPanel jp1;
JPanel jp2;
JTable jt;
JButton jb1;
JButton jb2;
JButton jb3;
JButton jb4;
JTextField jtf;
JLabel jl;
JScrollPane js;

public static void main(String[] args) {
    Test2 tt = new Test2();

}

public Test2() {
    jp1 = new JPanel();
    jl = new JLabel("用户名");
    jtf = new JTextField(10);
    jb1 = new JButton("查询");
    jb1.setActionCommand("查询");
    //注册监听
    jb1.addActionListener(this);
    //把按钮加入JPanel
    jp1.add(jtf);
    jp1.add(jl);
    jp1.add(jb1);

    //另一个JPanel
    jp2 = new JPanel();
    jb2 = new JButton("增加");
    jb3 = new JButton("修改");
    jb4 = new JButton("删除");
    jp2.add(jb2);
    jp2.add(jb3);
    jp2.add(jb4);
    //中间的表数据部分,移到了模型类去处理
    //创建模型
    studModel stud = new studModel();
    //将模型添加进去!
    jt = new JTable(stud);
    js = new JScrollPane(jt);
    this.add(js);
    this.add(jp1,"North");
    this.add(jp2,"South");
    this.setSize(400, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().equals("查询")) {
    System.out.println("用户想查询");
    }
}

}

2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//数据模型类,新建一个类窗口,处于同一个包即可
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.table.*;

import com.mysql.jdbc.PreparedStatement;

public class studModel extends AbstractTableModel{
//连接数据库所需要的控件
Vector rowdata, columnNames;
PreparedStatement ps= null;
Connection ct= null;
ResultSet rs= null;

public studModel() {
    columnNames = new Vector();
    columnNames.add("学号");
    columnNames.add("姓名");
    columnNames.add("性别");
    columnNames.add("年龄");
    columnNames.add("专业");
    rowdata = new Vector();
    try {
        Class.forName("com.mysql.jdbc.Driver");
        ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/stu?useSSL=false","root","root");
        ps= (PreparedStatement) ct.prepareStatement("select * from stud");
        rs =ps.executeQuery();
        while(rs.next()) {

            Vector hang = new Vector();
            hang.add(rs.getString(1));
            hang.add(rs.getString(2));
            hang.add(rs.getString(3));
            hang.add(rs.getInt(4));
            hang.add(rs.getString(5));
            //加入到rowdata中。
            rowdata.add(hang);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    finally {
        //关闭资源

        try {
            if(rs!=null){ rs.close();}
            if(ps!=null){ps.close();}
            if(ct!=null){ct.close();}
        } catch (SQLException e) {

            e.printStackTrace();
        }

    }
}
@Override
public int getColumnCount() {
    // TODO Auto-generated method stub
    return this.columnNames.size();
}
@Override
public int getRowCount() {
    // TODO Auto-generated method stub
    return this.rowdata.size();
}
@Override
public Object getValueAt(int row, int column) {
    // TODO Auto-generated method stub
    return ((Vector)this.rowdata.get(row)).get(column);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值