提示:java菜鸡的我,大家看看就行
文章目录
- 一、效果图
- 二、具体代码
- 1.引入库
- PersonFrame类:
- DBConnect类
- 总结
提示:以下是本篇文章正文内容,下面案例可供参考
一、效果图
二、具体代码
两个类
1.引入库
PersonFrame类:
package cn.gdust2;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import java.util.Map.Entry;;
public class PersonFrame extends JFrame implements ActionListener {
private final String []sexs = new String []{"男","女"};
private final String [] relations = new String [] {"同事","亲戚","长辈","同学","发小"};
private Map < String,String > map;
private JPanel editPanel;
private JButton btnAdd = new JButton (" 添加");
private JButton btnDel = new JButton (" 删除");
private JButton btnUpdate = new JButton (" 修改");
private JButton btnSave = new JButton (" 保存");
private JButton btnSeek = new JButton (" 查询");
private JButton btnAll = new JButton (" 全部");
private JButton btnQuit = new JButton (" 退出");
private JTextField jtfName = new JTextField ();
private JComboBox jcbSex = new JComboBox (sexs);
private JTextField jtfQQ = new JTextField ();
private JTextField jtfEmail = new JTextField ();
private JTextField jtfAddress = new JTextField ();
private JTextField jtfWechat = new JTextField ();
private JTextField jtfTell = new JTextField ();
private JTextField jtfCondition = new JTextField (10);
private JComboBox jcbRelation = new JComboBox (relations);
private JComboBox jcbField = new JComboBox ();
private JTable tablelist = new JTable ();
//表头(列名)
private Object [] columnNames = {"姓名","性别"," 关系"," QQ"," 微信"," 联系电话"," 联系地址"};
//表格所有行数据
private Object [][] rowData;
public PersonFrame (){
super (" 通讯录管理程序");
setSize (600,480);
setLocation (100,100);
setResizable (false);
map = new HashMap < String,String > ();
map.put (" 姓名"," name");
Set <String> set = map.keySet ();
Iterator < String> e = set.iterator ();
while (e.hasNext()){
jcbField.addItem(e.next());
}
Container container = this.getContentPane ();
container.setLayout (new BorderLayout ());
JPanel topPanel = new JPanel ();
container.add(topPanel,BorderLayout. NORTH);
topPanel.setLayout(new FlowLayout (FlowLayout. CENTER));
topPanel.add(new JLabel (" 查询方式"));
topPanel.add(jcbField);
topPanel.add(jtfCondition);
topPanel.add(btnSeek);
topPanel.add(btnAll);
topPanel.add(btnQuit);
editPanel = new JPanel ();
editPanel.setBounds (0,0,100,300);
container.add(editPanel,BorderLayout. CENTER);
editPanel.setLayout (null);
//第一行
JLabel lblName = new JLabel (" 姓名:");
lblName.setBounds (40,10,60,25);
editPanel.add(lblName);
jtfName.setBounds (80,10,160,25);
editPanel.add (jtfName);
JLabel lblSex = new JLabel (" 性别:");
lblSex.setBounds (270,10,60,25);
editPanel.add (lblSex);
jcbSex.setBounds (320,10,40,25);
editPanel.add(jcbSex);
JLabel lblRelation = new JLabel (" 关系:");
lblRelation.setBounds (380,10,60,25);
editPanel.add (lblRelation);
jcbRelation.setBounds (420,10,80,25);
editPanel.add (jcbRelation);
//第二行
JLabel lblQQ = new JLabel (" QQ:");
lblQQ. setBounds (40,40,60,25);
editPanel. add (lblQQ);
jtfQQ. setBounds (80,40,160,25);
editPanel. add (jtfQQ);
JLabel lblWechat = new JLabel (" 微信:");
lblWechat. setBounds (270,40,60,25);
editPanel. add (lblWechat);
jtfWechat. setBounds (320,40,160,25);
editPanel. add (jtfWechat);
//第三行
JLabel lblTell = new JLabel (" 联系电话:");
lblTell. setBounds (20,70,80,25);
editPanel. add (lblTell);
jtfTell. setBounds (80,70,160,25);
editPanel. add (jtfTell);
JLabel lblEmail = new JLabel (" 电子邮箱:");
lblEmail. setBounds (250,70,80,25);
editPanel. add (lblEmail);
jtfEmail. setBounds (320,70,160,25);
editPanel. add (jtfEmail);
//第四行
JLabel lblAddress = new JLabel (" 联系地址:");
lblAddress. setBounds (20,100,80,25);
editPanel. add (lblAddress);
jtfAddress. setBounds (80,100,400,25);
editPanel. add (jtfAddress);
JPanel bottomPanel = new JPanel ();
bottomPanel. setPreferredSize (new Dimension (0,280));
container. add (bottomPanel,BorderLayout. SOUTH);
bottomPanel. setLayout (new BorderLayout ());
JPanel tablePanel = new JPanel ();
bottomPanel. add (tablePanel,BorderLayout. NORTH);
JPanel toolPanel = new JPanel ();
bottomPanel. add (toolPanel,BorderLayout. SOUTH);
rowData = new Object [1][columnNames.length];
//创建一个表格,指定所有行数据和表头
tablelist = new JTable (rowData,columnNames);
tablePanel.add(tablelist.getTableHeader());
tablePanel.add(tablelist);
toolPanel.add(btnAdd);
toolPanel.add (btnUpdate);
toolPanel.add(btnSave);
toolPanel.add(btnDel);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
setEditabled(false);
btnAdd.addActionListener(this);
btnSave.addActionListener(this);
btnDel.addActionListener(this);
btnUpdate.addActionListener(this);
btnSeek.addActionListener(this);
btnAll.addActionListener(this);
btnQuit.addActionListener(this);
this. addWindowListener(new WindowAdapter(){
public void JFClose(WindowEvent w){
System.exit (0);
}
});
}
//设置编辑状态
private void setEditabled(boolean editabled){
jtfName.setEditable(editabled);
jtfQQ.setEditable(editabled);
jtfEmail.setEditable(editabled);
jtfWechat.setEditable(editabled);
jtfAddress.setEditable(editabled);
jtfTell.setEditable(editabled);
jcbSex.setEditable(editabled);
jcbRelation.setEditable(editabled);
}
//事件代码 完成各个按钮功能事务代码
@ Override
public void actionPerformed (ActionEvent e){
if (e. getSource () == btnAdd){
}else if (e.getSource () == btnDel){
}else if (e.getSource () == btnUpdate){
}else if (e.getSource () == btnSave){
}else if (e.getSource () == btnSeek){
}else if (e.getSource () == btnAll){
}else if (e.getSource () == btnQuit){
dispose();
}
}
public static void main(String[] args) {
new PersonFrame();
}
}
DBConnect类
package cn.gdust2;
import java.sql.*;
import java.util.*;
import java.util.Map.Entry;;
public class DBConnect {
private final String driver="com.mysql.cj.jdbc.Driver";
private final String url="jdbc:mysql://127.0.0.1:3306/addresslist?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
private final String username="root";
private final String password="123456";
public Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
//构造方法
public DBConnect( ) throws ClassNotFoundException,SQLException{
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
}
//执行查询
public ArrayList<Map<String, String>> select(String tablename,ArrayList<String>selectFields,String condition ){
ArrayList<Map<String, String>>list=new ArrayList<Map<String,String>>();
String fields,tempFields="";
for (int i = 0; i < selectFields.size(); i++) {
tempFields = tempFields+selectFields.get(i) +",";
fields = tempFields.substring(0, tempFields.length() -2);
String sql = "selct" +fields + "from" + tablename + ""+ condition;
try {
stmt=conn.createStatement();
rs= stmt.executeQuery(sql);
while (rs.next()) {
Map<String, String>map = new HashMap<String, String>();
map.put("message_type", rs.getString("message_type"));
map.put("message_content", rs.getString("message_content"));
list.add(map);
}
}catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
return list;
}
//添加数据
public boolean insert (String tablename,HashMap<Object,Object>map){
boolean flag = false;
String sql = "";
String fields = "",tempFields = "";
String values = "",tempValues = "";
Iterator <Entry <Object,Object > >keys = map.entrySet().iterator();
for (int i =0;i < map.size();i++){
Entry<Object,Object> entry = keys.next();
Object key = entry. getKey();
Object value = entry.getValue();
tempFields += key+" ',";
tempValues += " '" + value + " '" + ",";
}
fields = tempFields. substring (0,tempFields. length () -2);
values = tempValues. substring (0,tempValues. length () -2);
sql += " insert into" + tablename + " (" + fields + ") values" + "(" + values + ")";
try {
stmt = conn. createStatement ();
stmt. execute (sql);
flag = true;
}catch (SQLException e){
e. printStackTrace ();
}
return flag;
}
//更新数据
public boolean update (String tablename,HashMap < Object,Object > map, String condition){
boolean flag = false;
String values = "";
Iterator <Entry <Object,Object >>keys = map.entrySet ().iterator();
for(int i =0;i < map. size ();i++ ){
Entry < Object,Object > entry = keys. next ();
Object key = entry. getKey ();
Object value = entry. getValue ();
values += key + " = '" + value + " ',";
}
String updateValues = values.substring (0,values. length () -2);
String sql = " update" + tablename + " set" + updateValues +"" +condition;
try {
stmt = conn. createStatement ();
stmt. executeUpdate (sql);
flag = true;
}catch (SQLException e){
e. printStackTrace ();
}
return flag;
}
//删除数据
public boolean delete (String tablename,String condition){
boolean flag = false;
String sql = " delete from" + tablename + "" + condition;
try {
stmt = conn. createStatement ();
stmt. executeUpdate (sql);
flag = true;
}catch (SQLException e){
e. printStackTrace ();
}
return flag;
}
//关闭数据连接
public void close ()throws SQLException {
stmt. close ();
conn. close ();
}
}
总结
一个简单的Java的GUI界面,具体的链接数据库显示没写,需要实现可以去修改DBConnect类和主方法里面。
觉得复制麻烦可以点击下载,