「旅游信息管理系统」 · Java Swing + MySQL 开发

import java.sql.Date;

import java.text.SimpleDateFormat;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.ActionEvent;

public class MainJframe extends JFrame {

Select select = new Select();

Updata updata = new Updata();

Object[] header= {“线路号”,“起点”,“终点”,“天数”,“主要景点”};

Object[][] data=select.getLineInfo();

public MainJframe() {

super(“旅游管理信息系统”);

this.setBounds(0, 0, 1200, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口的关闭按钮时程序执行的操作

//按钮

ImageIcon i1 = new ImageIcon(“img/Icon1.png”);

JButton xxcx = new JButton(“旅游信息查询”,i1);

xxcx.setBounds(14, 11, 145, 35);

xxcx.setFocusPainted(false);//去掉按钮周围的焦点框

xxcx.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(xxcx);

xxcx.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

JOptionPane.showMessageDialog(null, “此功能暂未开放!”);

}

});

ImageIcon i2 = new ImageIcon(“img/Icon2.png”);

JButton bmly = new JButton(“报名旅游”,i2);

bmly.setBounds(164, 11, 110, 35);

bmly.setFocusPainted(false);//去掉按钮周围的焦点框

bmly.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(bmly);

bmly.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

Registration_Info r = new Registration_Info();

r.setVisible(true);

} else {

JOptionPane.showMessageDialog(null, “请先登录!”);

Login l = new Login();

l.setVisible(true);

dispose();

}

}

});

ImageIcon i3 = new ImageIcon(“img/Icon3.png”);

JButton ywgl = new JButton(“业务管理员”,i3);

ywgl.setBounds(279, 11, 130, 35);

ywgl.setFocusPainted(false);//去掉按钮周围的焦点框

ywgl.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(ywgl);

ywgl.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

//判断当前登录的用户身份

String user_type = select.getString(“SELECT user_type FROM user WHERE user_state=‘已登录’”);

if (user_type.equals(“管理员”)) {

Registration_Management r = new Registration_Management();

r.setVisible(true);

dispose();

}else{

JOptionPane.showMessageDialog(null, “当前无权限!请登录管理员账号!”);

}

} else {

JOptionPane.showMessageDialog(null, “请先登录!”);

Login l = new Login();

l.setVisible(true);

dispose();

}

}

});

ImageIcon i4 = new ImageIcon(“img/Icon4.png”);

JButton yhdl = new JButton(“登录”,i4);

yhdl.setBounds(414, 11, 85, 35);

yhdl.setFocusPainted(false);//去掉按钮周围的焦点框

yhdl.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(yhdl);

yhdl.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

String i = select.getString(“SELECT user_account FROM user WHERE user_state=‘已登录’”);

JOptionPane.showMessageDialog(null, “当前已有用户”+" ”“+i+”” "+“登录”);

}else {

Login l = new Login();

l.setVisible(true);

dispose();

}

}

});

ImageIcon i5 = new ImageIcon(“img/Icon5.png”);

JButton yhzc = new JButton(“注册”,i5);

yhzc.setBounds(504, 11, 85, 35);

yhzc.setFocusPainted(false);//去掉按钮周围的焦点框

yhzc.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(yhzc);

yhzc.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

String i = select.getString(“SELECT user_account FROM user WHERE user_state=‘已登录’”);

// JOptionPane.showMessageDialog(null, “当前已有用户”+" ”“+i+”” "+“登录!是否注销?”);

int a = JOptionPane.showConfirmDialog(null,“当前已有用户”+" ”“+i+”” "+“登录!是否注销?”,“注销提示”,0,1);

if(a == JOptionPane.OK_OPTION){

JOptionPane.showMessageDialog(null, “已注销前账户!”);

updata.addData(“UPDATE user SET user_state=‘未登录’ WHERE user_account='”+i+“';”);

Registered r = new Registered();

r.setVisible(true);

dispose();

}

}else {

Registered r = new Registered();

r.setVisible(true);

dispose();

}

}

});

ImageIcon i6 = new ImageIcon(“img/Icon6.png”);

JButton tcxt = new JButton(“退出系统”,i6);

tcxt.setBounds(594, 11, 110, 35);

tcxt.setFocusPainted(false);//去掉按钮周围的焦点框

tcxt.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(tcxt);

tcxt.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

int result = JOptionPane.showConfirmDialog(null,“您现在要关闭系统吗?关闭后同时注销账号!”,“退出提示”,0,1);

if(result == JOptionPane.OK_OPTION){

JOptionPane.showMessageDialog(null, “已退出系统,欢迎下次使用!”);

updata.addData(“UPDATE user SET user_state=‘未登录’;”);

System.exit(0);

}

}

});

ImageIcon i7 = new ImageIcon(“img/Icon7.png”);

JButton help = new JButton(“帮助”,i2);

help.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null, “系统管理员电话:18214217246”);

}

});

help.setBounds(709, 11, 85, 35);

help.setFocusPainted(false);//去掉按钮周围的焦点框

help.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(help);

JLabel dqsj = new JLabel(“当前时间 :”);

// dqsj.setForeground(Color.decode(“#7784BD”));

dqsj.setBounds(857, 13, 85, 35);

dqsj.setFont(new Font(“微软雅黑”, Font.BOLD, 15));

getContentPane().add(dqsj);

JLabel time1 = new JLabel();

// time1.setForeground(Color.decode(“#7784BD”));

time1.setBounds(944, 14, 236, 35);

time1.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

getContentPane().add(time1);

this.setTimer(time1);

//创建表模型

DefaultTableModel dt=new DefaultTableModel(data,header){

//设置表格内容不可被编辑

public boolean isCellEditable(int row, int column) {

return false;//返回true表示能编辑,false表示不能编辑

}

};

JTable jTable=new JTable(dt);//创建表格

jTable.getTableHeader().setFont(new Font(null, Font.BOLD, 14)); // 设置表头名称字体样式

jTable.getTableHeader().setForeground(Color.black); // 设置表头名称字体颜色

jTable.getTableHeader().setResizingAllowed(false); // 设置不允许手动改变列宽

jTable.getTableHeader().setReorderingAllowed(false);//设置表头不允许拖动

int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;//水平滚动条

int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;//垂直滚动条

JScrollPane jsp=new JScrollPane(jTable,v,h);//创建滚动容器

jsp.setBounds(14, 68, 1166, 584);

getContentPane().add(jsp);

//设置单元格内容居中显示

DefaultTableCellRenderer r = new DefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

jTable.setDefaultRenderer(Object.class, r);

}

// 设置Timer 1000ms实现一次动作 实际是一个线程

private void setTimer(JLabel time) {

final JLabel varTime = time;

Timer timeAction = new Timer(100, new ActionListener() {

public void actionPerformed(ActionEvent e) {

long timemillis = System.currentTimeMillis();

// 转换日期显示格式

SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

varTime.setText(df.format(new Date(timemillis)));

}

});

timeAction.start();

}

public static void main(String[] args) {

MainJframe m = new MainJframe();

m.setVisible(true);

}

}

Login.Java

package com.ynavc.View;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import javax.swing.JButton;

public class Login extends JFrame {

Select select = new Select();

Updata updata = new Updata();

private JTextField textField_zh;

private JPasswordField textField_mm;

public Login() {

super.setTitle(“系统登录”);

this.setBounds(0, 0, 700, 550);//设置大小

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

JLabel label_zh = new JLabel(“账号:”);

label_zh.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_zh.setBounds(183, 135, 72, 18);

getContentPane().add(label_zh);

textField_zh = new JTextField();

textField_zh.setBounds(233, 130, 270, 34);

getContentPane().add(textField_zh);

textField_zh.setColumns(10);

JLabel label_mm = new JLabel(“密码:”);

label_mm.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_mm.setBounds(183, 205, 72, 18);

getContentPane().add(label_mm);

textField_mm = new JPasswordField();

textField_mm.setBounds(233, 200, 270, 34);

getContentPane().add(textField_mm);

textField_mm.setColumns(10);

JButton button = new JButton(“登录”);

button.setFont(new Font(“宋体”, Font.BOLD, 20));

button.setBounds(282, 299, 113, 34);

button.setFocusPainted(false);//去掉按钮周围的焦点框

button.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String account=textField_zh.getText();

String password=textField_mm.getText();

if (account.equals(“”)&&password.equals(“”)) {

JOptionPane.showMessageDialog(null, “账户名或密码未填写!”);

} else {

String sql = “select COUNT(*) from user where user_password='”+password+“’ and user_account='”+account+“'”;

int reselt = select.getCount(sql);

int i = updata.addData(“UPDATE user SET user_state=‘已登录’ WHERE user_account='”+account+“';”);

if (reselt>0&&i>0) {

JOptionPane.showMessageDialog(null, “登录成功!欢迎使用!”);

MainJframe m = new MainJframe();

m.setVisible(true);

dispose();

} else {

JOptionPane.showMessageDialog(null, “登录失败!账户名或密码不正确!请重新输入!”);

}

}

}

});

JLabel ljzc = new JLabel(“没有账号?立即注册!”);

ljzc.setFont(new Font(“宋体”, Font.ITALIC, 16));

ljzc.setForeground(Color.blue);

ljzc.setBounds(271, 380, 168, 27);

getContentPane().add(ljzc);

ljzc.addMouseListener(new MouseListener(){

public void mouseClicked(MouseEvent e) {

// 处理鼠标点击

Registered m = new Registered();

m.setVisible(true);

dispose();

}

public void mouseEntered(MouseEvent e) {

// 处理鼠标移入

ljzc.setForeground(Color.red);

}

public void mouseExited(MouseEvent e) {

// 处理鼠标离开

ljzc.setForeground(Color.blue);

}

public void mousePressed(MouseEvent e) {

// 处理鼠标按下

}

public void mouseReleased(MouseEvent e) {

// 处理鼠标释放

}

});

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

super.windowClosing(e);

//加入动作

MainJframe m = new MainJframe();

m.setVisible(true);

}

});

}

}

Registered.Java

package com.ynavc.View;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import com.ynavc.Controller.Updata;

public class Registered extends JFrame {

Updata updata = new Updata();

private JTextField textField_zh;

private JPasswordField textField_srmm;

private JPasswordField textField_qrmm;

public Registered() {

super.setTitle(“账号注册”);

this.setBounds(0, 0, 700, 550);//设置大小

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

super.windowClosing(e);

//加入动作

MainJframe m = new MainJframe();

m.setVisible(true);

}

});

JLabel label_zh = new JLabel(“账号名:”);

label_zh.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_zh.setBounds(165, 138, 72, 18);

getContentPane().add(label_zh);

textField_zh = new JTextField();

textField_zh.setBounds(248, 130, 255, 34);

getContentPane().add(textField_zh);

textField_zh.setColumns(10);

JLabel label_srmm = new JLabel(“输入密码:”);

label_srmm.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_srmm.setBounds(165, 208, 83, 18);

getContentPane().add(label_srmm);

textField_srmm = new JPasswordField();

textField_srmm.setBounds(248, 267, 255, 34);

getContentPane().add(textField_srmm);

textField_srmm.setColumns(10);

JLabel label_qrmm = new JLabel(“确认密码:”);

label_qrmm.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_qrmm.setBounds(165, 275, 92, 18);

getContentPane().add(label_qrmm);

textField_qrmm = new JPasswordField();

textField_qrmm.setBounds(248, 200, 255, 34);

getContentPane().add(textField_qrmm);

textField_qrmm.setColumns(10);

JButton button = new JButton(“注册”);

button.setFont(new Font(“宋体”, Font.BOLD, 20));

button.setBounds(282, 362, 113, 34);

button.setFocusPainted(false);//去掉按钮周围的焦点框

button.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String yhm = textField_zh.getText();

String srmm = textField_srmm.getText();

String qrmm = textField_qrmm.getText();

//确认输入的信息是否为空

if (yhm.equals(“”)&&srmm.equals(“”)&&qrmm.equals(“”)) {

JOptionPane.showMessageDialog(null, “请完整输入信息!”);

}else {

//判断两次密码是否一致

if (srmm.equals(qrmm)) {

String sql = “INSERT INTO user VALUES (null, '”+yhm+“', '”+srmm+“', ‘游客’, ‘未登录’);”;

int reselt = updata.addData(sql);

if (reselt>0) {

JOptionPane.showMessageDialog(null, “注册成功!将跳转到登录页面!”);

Login l = new Login();

l.setVisible(true);

dispose();

}else {

JOptionPane.showMessageDialog(null, “注册失败!”);

}

}else {

JOptionPane.showMessageDialog(null, “两次输入的密码不一致!请检查!”);

}

}

}

});

}

}

Registration_Info.Java

package com.ynavc.View;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import com.ynavc.Utils.ValidateUtils;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import java.awt.event.ActionEvent;

import java.awt.Font;

import javax.swing.JComboBox;

import javax.swing.DefaultComboBoxModel;

public class Registration_Info extends JFrame {

private JTextField textField_name;//姓名

private JTextField textField_age;//年龄

private JTextField textField_IDcard;//身份证号码

private JTextField textField_address;//地址

private JTextField textField_phone;//电话

private JTextField textField_th;//团号

private JTextField textField_pt;//陪同

private JTextField textField_ss;//食宿

Select select = new Select();

Updata updata = new Updata();

String name,sex,age,Idcard,address,phone,th,pt,ss;

public Registration_Info() {

super(“填写报名信息”);

this.setBounds(0, 0, 930, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

JLabel lblNewLabel_name= new JLabel(“姓名:”);

lblNewLabel_name.setBounds(138, 79, 72, 18);

getContentPane().add(lblNewLabel_name);

textField_name = new JTextField();

textField_name.setBounds(191, 76, 240, 24);

getContentPane().add(textField_name);

textField_name.setColumns(10);

JLabel lblNewLabel_sex= new JLabel(“性别:”);

lblNewLabel_sex.setBounds(138, 125, 72, 18);

getContentPane().add(lblNewLabel_sex);

JComboBox comboBox_sez = new JComboBox();

comboBox_sez.setModel(new DefaultComboBoxModel(new String[] {“男”, “女”}));

comboBox_sez.setBounds(191, 122, 240, 24);

getContentPane().add(comboBox_sez);

JLabel lblNewLabel_age= new JLabel(“年龄:”);

lblNewLabel_age.setBounds(138, 168, 72, 18);

getContentPane().add(lblNewLabel_age);

textField_age = new JTextField();

textField_age.setBounds(191, 165, 240, 24);

getContentPane().add(textField_age);

textField_age.setColumns(10);

JLabel lblNewLabel_IDcard= new JLabel(“身份证号码:”);

lblNewLabel_IDcard.setBounds(93, 213, 117, 18);

getContentPane().add(lblNewLabel_IDcard);

textField_IDcard = new JTextField();

textField_IDcard.setBounds(191, 210, 240, 24);

getContentPane().add(textField_IDcard);

textField_IDcard.setColumns(10);

JLabel lblNewLabel_address= new JLabel(“住址:”);

lblNewLabel_address.setBounds(138, 254, 72, 18);

getContentPane().add(lblNewLabel_address);

textField_address = new JTextField();

textField_address.setBounds(191, 251, 240, 24);

getContentPane().add(textField_address);

textField_address.setColumns(10);

JLabel lblNewLabel_phone= new JLabel(“电话:”);

lblNewLabel_phone.setBounds(138, 295, 72, 18);

getContentPane().add(lblNewLabel_phone);

textField_phone = new JTextField();

textField_phone.setBounds(191, 292, 240, 24);

getContentPane().add(textField_phone);

textField_phone.setColumns(10);

JLabel lblNewLabel_th= new JLabel(“团号:”);

lblNewLabel_th.setBounds(138, 335, 72, 18);

getContentPane().add(lblNewLabel_th);

textField_th = new JTextField();

textField_th.setBounds(191, 332, 240, 24);

getContentPane().add(textField_th);

textField_th.setColumns(10);

JLabel lblNewLabel_pt= new JLabel(“陪同:”);

lblNewLabel_pt.setBounds(138, 382, 72, 18);

getContentPane().add(lblNewLabel_pt);

textField_pt = new JTextField();

textField_pt.setText(“是否选择导游陪同?”);

textField_pt.setToolTipText(“”);

textField_pt.setBounds(191, 379, 240, 24);

getContentPane().add(textField_pt);

textField_pt.setColumns(10);

JLabel lblNewLabel_ss= new JLabel(“食宿:”);

lblNewLabel_ss.setBounds(138, 427, 72, 18);

getContentPane().add(lblNewLabel_ss);

textField_ss = new JTextField();

textField_ss.setText(“是否选择宾馆住宿?”);

textField_ss.setBounds(191, 424, 240, 24);

getContentPane().add(textField_ss);

textField_ss.setColumns(10);

JButton button_1 = new JButton(“查看旅游团信息”);

button_1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

}

});

button_1.setBounds(453, 331, 158, 27);

button_1.setFocusPainted(false);//去掉按钮周围的焦点框

button_1.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_1);

JButton button_2 = new JButton(“显示选择结果”);

button_2.setBounds(625, 331, 146, 27);

button_2.setFocusPainted(false);//去掉按钮周围的焦点框

button_2.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_2);

JButton button_3 = new JButton(“是”);

button_3.setBounds(453, 378, 72, 27);

button_3.setFocusPainted(false);//去掉按钮周围的焦点框

button_3.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_3);

button_3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“是”);

}

});

JButton button_4 = new JButton(“否”);

button_4.setBounds(539, 378, 72, 27);

button_4.setFocusPainted(false);//去掉按钮周围的焦点框

button_4.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_4);

button_4.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“无”);

}

});

JButton button_5 = new JButton(“显示选择结果”);

button_5.setBounds(625, 378, 146, 27);

button_5.setFocusPainted(false);//去掉按钮周围的焦点框

button_5.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_5);

JButton button_6 = new JButton(“是”);

button_6.setBounds(453, 421, 72, 27);

button_6.setFocusPainted(false);//去掉按钮周围的焦点框

button_6.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_6);

button_6.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“是”);

}

});

JButton button_7 = new JButton(“否”);

button_7.setBounds(539, 421, 72, 27);

button_7.setFocusPainted(false);//去掉按钮周围的焦点框

button_7.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_7);

button_7.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“无”);

}

});

JButton button_8 = new JButton(“显示选择结果”);

button_8.setBounds(625, 423, 146, 27);

button_8.setFocusPainted(false);//去掉按钮周围的焦点框

button_8.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_8);

JButton btnNewButton = new JButton(“报名”);

btnNewButton.setFont(new Font(“微软雅黑”, Font.PLAIN, 18));

btnNewButton.setBounds(388, 516, 124, 33);

btnNewButton.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton);

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

name = textField_name.getText();

sex = comboBox_sez.getSelectedItem().toString();

age = textField_age.getText();

Idcard = textField_IDcard.getText();

address = textField_address.getText();

phone = textField_phone.getText();

th = textField_th.getText();

pt = textField_pt.getText();

if (pt.equals(“是否选择导游陪同?”)) {

pt=“无”;

}

ss = textField_ss.getText();

if (ss.equals(“是否选择宾馆住宿?”)) {

ss=“无”;

}

//判断输入的信息是否为空,是否完整

if (name.equals(“”)||sex.equals(“”)||age.equals(“”)||Idcard.equals(“”)||address.equals(“”)||phone.equals(“”)||th.equals(“”)||pt.equals(“”)||ss.equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整信息!”);

} else {

//判断身份证号码

if (!ValidateUtils.IDcard(Idcard)) {

JOptionPane.showMessageDialog(null, “身份证号码错误!请检查!”);

} else {

String i = select.getString(“SELECT user_id FROM user WHERE user_state=‘已登录’”);

String sql = “INSERT INTO tourist VALUES (null, '”+i+“', '”+name+“', '”+sex+“', '”+age+“', '”+Idcard+“', '”+address+“', '”+phone+“', '”+th+“', '”+pt+“', '”+ss+“');”;

int result = updata.addData(sql);

//判断手机号

String regex = “^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\d{8}$”;

if(phone.length() != 11){

JOptionPane.showMessageDialog(null, “手机号应为11位数!”);

}else{

Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(phone);

boolean isMatch = m.matches();

if(!isMatch){

JOptionPane.showMessageDialog(null, “您的手机号” + phone + “是错误格式!!!”);

}else {

//判断插入结果

if (result>0) {

JOptionPane.showMessageDialog(null, “报名成功!”);

dispose();

MainJframe m1 = new MainJframe();

m1.setVisible(true);

} else {

JOptionPane.showMessageDialog(null, “报名失败,请与管理员联系!”);

}

}

}

}

}

}

});

}

}

Registration_Management.Java

package com.ynavc.View;

import java.awt.Color;

import java.awt.FileDialog;

import java.awt.Font;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.ScrollPaneConstants;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableModel;

import com.ynavc.Bean.Tourist;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import javax.swing.JTextField;

import javax.imageio.ImageIO;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.awt.event.ActionEvent;

public class Registration_Management extends JFrame {

Select select = new Select();

Updata updata = new Updata();

JButton btnNewButton_Export;

JTable jTable;

DefaultTableModel dt;

// String name,sex,age,Idcard,address,phone,th,pt,ss;

Object[] header= {“游客编号”,“姓名”,“性别”,“年龄”,“身份证号”,“住址”,“电话”,“旅游团”,“陪同”,“食宿”};

Object[][] data=select.getTourist(“SELECT * FROM tourist”);

private JTextField textField_ykbh;

private JTextField textField_th;

private JTextField textField_name;

public Registration_Management() {

super(“报名信息管理”);

this.setBounds(0, 0, 1200, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

super.windowClosing(e);

//加入动作

MainJframe m = new MainJframe();

m.setVisible(true);

}

});

//创建表模型

dt=new DefaultTableModel(data,header){

//设置表格内容不可被编辑

public boolean isCellEditable(int row, int column) {

return false;//返回true表示能编辑,false表示不能编辑

}

};

jTable=new JTable(dt);//创建表格

jTable.getTableHeader().setFont(new Font(null, Font.BOLD, 14)); // 设置表头名称字体样式

jTable.getTableHeader().setForeground(Color.black); // 设置表头名称字体颜色

// jTable.getTableHeader().setResizingAllowed(false); // 设置不允许手动改变列宽

jTable.getTableHeader().setReorderingAllowed(false);//设置表头不允许拖动

int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;//水平滚动条

int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;//垂直滚动条

JScrollPane jsp=new JScrollPane(jTable,v,h);//创建滚动容器

jsp.setBounds(0, 0, 976, 675);

getContentPane().add(jsp);

JLabel label_ykbh = new JLabel(“游客编号:”);

label_ykbh.setBounds(990, 74, 89, 18);

getContentPane().add(label_ykbh);

textField_ykbh = new JTextField();

textField_ykbh.setBounds(1066, 71, 114, 24);

getContentPane().add(textField_ykbh);

textField_ykbh.setColumns(10);

JLabel label_th = new JLabel(“团号:”);

label_th.setBounds(1000, 122, 52, 18);

getContentPane().add(label_th);

textField_th = new JTextField();

textField_th.setColumns(10);

textField_th.setBounds(1066, 119, 114, 24);

getContentPane().add(textField_th);

JLabel label_name = new JLabel(“姓名:”);

label_name.setBounds(1000, 168, 52, 18);

getContentPane().add(label_name);

textField_name = new JTextField();

textField_name.setColumns(10);

textField_name.setBounds(1066, 165, 114, 24);

getContentPane().add(textField_name);

JButton btnNewButton_Query = new JButton(“查询”);

btnNewButton_Query.setBounds(1031, 224, 113, 27);

btnNewButton_Query.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Query.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Query);

btnNewButton_Query.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String ykbh,th,name,sql;

ykbh = textField_ykbh.getText();

th = textField_th.getText();

name = textField_name.getText();

if (ykbh.equals(“”)&&th.equals(“”)&&name.equals(“”)) {

sql = “SELECT * FROM tourist”;

}else if(ykbh.equals(“”)&&th.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_name='”+name+“';”;

}else if(name.equals(“”)&&th.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“';”;

}else if(ykbh.equals(“”)&&name.equals(“”)){

sql = “SELECT * FROM tourist WHERE group_num='”+th+“';”;

}else if(ykbh.equals(“”)){

sql = “SELECT * FROM tourist WHERE group_num='”+th+“’ and tourist_name='”+name+“';”;

}else if(th.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“’ and tourist_name='”+name+“';”;

}else if(name.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“’ and group_num='”+th+“';”;

}else {

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“’ and group_num='”+th+“’ and tourist_name='”+name+“';”;

}

data = select.getTourist(sql);

dt.setDataVector(data,header);

}

});

JButton btnNewButton_Alter = new JButton(“修改”);

btnNewButton_Alter.setBounds(1031, 278, 113, 27);

btnNewButton_Alter.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Alter.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Alter);

btnNewButton_Alter.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

if (jTable.getSelectedRow()<0) {

JOptionPane.showMessageDialog(null, “您未选中要修改的数据!”);

} else {

//获取用户选择的数据

String name,sex,age,Idcard,address,phone,th,pt,ss;

String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString();

String user_id = select.getString(“SELECT user_id FROM user WHERE user_state=‘已登录’”);

name=jTable.getValueAt(jTable.getSelectedRow(), 1).toString();

sex=jTable.getValueAt(jTable.getSelectedRow(), 2).toString();

age=jTable.getValueAt(jTable.getSelectedRow(), 3).toString();

Idcard=jTable.getValueAt(jTable.getSelectedRow(), 4).toString();

address=jTable.getValueAt(jTable.getSelectedRow(), 5).toString();

phone=jTable.getValueAt(jTable.getSelectedRow(), 6).toString();

th=jTable.getValueAt(jTable.getSelectedRow(), 7).toString();

pt=jTable.getValueAt(jTable.getSelectedRow(), 8).toString();

ss=jTable.getValueAt(jTable.getSelectedRow(), 9).toString();

Tourist tourist=new Tourist(id, user_id, name, sex, age, Idcard, address, phone, th, pt, ss);

RegistrationInfo_Change frame=new RegistrationInfo_Change(tourist);

frame.setVisible(true);

}

}

});

JButton btnNewButton_Add = new JButton(“添加”);

btnNewButton_Add.setBounds(1031, 330, 113, 27);

btnNewButton_Add.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Add.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Add);

btnNewButton_Add.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

Registration_Info r = new Registration_Info();

r.setVisible(true);

}

});

JButton btnNewButton_Delete = new JButton(“删除”);

btnNewButton_Delete.setBounds(1031, 383, 113, 27);

btnNewButton_Delete.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Delete.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Delete);

btnNewButton_Delete.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

if (jTable.getSelectedRow()<0) {

JOptionPane.showMessageDialog(null, “您未选中要删除的数据!”);

} else {

//获取用户选择的数据

String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString();

String name=jTable.getValueAt(jTable.getSelectedRow(), 1).toString();

int result = JOptionPane.showConfirmDialog(null,“您确定要删除用户 “”+name+“” 的报名信息吗?”,“删除提示”,0,1);

if(result == JOptionPane.OK_OPTION){

int i = updata.addData(“DELETE FROM tourist WHERE tourist_num='”+id+“';”);

if (i>0){

JOptionPane.showMessageDialog(null, “用户 “”+name+“” ,已被删除成功!”);

} else {

JOptionPane.showMessageDialog(null, “删除失败!”);

}

data=select.getTourist(“SELECT * FROM tourist”);

dt.setDataVector(data,header);

}

}

}

});

JButton btnNewButton_Tip = new JButton(“提示”);

btnNewButton_Tip.setBounds(1031, 436, 113, 27);

btnNewButton_Tip.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Tip.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Tip);

btnNewButton_Tip.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null, “查询:直接点击将列出所有报名信息,也可填写游客编号、团号和性别查询。
修改:点击游客将会将游客编号绑定到文本框中,可以对该游客编号对应的游客进行团号和性别修改。
删除:点击要删除的信息,点击删除即可。
添加:对报名信息进行添加。”);

}

});

btnNewButton_Export = new JButton(“将数据导出到
  Excel 表中”);

btnNewButton_Export.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

jButtonActionPerformed(e);

}

});

btnNewButton_Export.setBounds(1016, 525, 138, 51);

btnNewButton_Export.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Export.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Export);

//设置单元格内容居中显示

DefaultTableCellRenderer r = new DefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

jTable.setDefaultRenderer(Object.class, r);

}

//导出

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {

FileDialog fd = new FileDialog(this, “将数据保存到”, FileDialog.SAVE);

fd.setLocation(1100, 600);

fd.setVisible(true);

String stringfile = fd.getDirectory()+fd.getFile()+“.xlsx”;

try {

// ExcelExporter export = new ExcelExporter();

this.exportTable(jTable, new File(stringfile));

} catch (IOException ex) {

ex.printStackTrace();

}

}

/**导出JTable到excel */

public void exportTable(JTable table, File file) throws IOException {

TableModel model = table.getModel();

BufferedWriter bWriter = new BufferedWriter(new FileWriter(file));

for(int i=0; i < model.getColumnCount(); i++) {

bWriter.write(model.getColumnName(i));

bWriter.write(“\t”);

}

bWriter.newLine();

for(int i=0; i< model.getRowCount(); i++) {

for(int j=0; j < model.getColumnCount(); j++) {

bWriter.write(model.getValueAt(i,j).toString());

bWriter.write(“\t”);

}

bWriter.newLine();

}

bWriter.close();

}

}

RegistrationInfo_Change.Java

package com.ynavc.View;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

import com.ynavc.Bean.Tourist;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import com.ynavc.Utils.ValidateUtils;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import java.awt.event.ActionEvent;

import java.awt.Font;

import javax.swing.JComboBox;

import javax.swing.DefaultComboBoxModel;

public class RegistrationInfo_Change extends JFrame {

private JTextField textField_name;//姓名

private JTextField textField_age;//年龄

private JTextField textField_IDcard;//身份证号码

private JTextField textField_address;//地址

private JTextField textField_phone;//电话

private JTextField textField_th;//团号

private JTextField textField_pt;//陪同

private JTextField textField_ss;//食宿

Select select = new Select();

Updata updata = new Updata();

String name,sex,age,Idcard,address,phone,th,pt,ss;

public RegistrationInfo_Change(Tourist tourist) {

super(“修改报名信息”);

this.setBounds(0, 0, 930, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

JLabel lblNewLabel_name= new JLabel(“姓名:”);

lblNewLabel_name.setBounds(138, 79, 72, 18);

getContentPane().add(lblNewLabel_name);

textField_name = new JTextField();

textField_name.setBounds(191, 76, 240, 24);

getContentPane().add(textField_name);

textField_name.setColumns(10);

JLabel lblNewLabel_sex= new JLabel(“性别:”);

lblNewLabel_sex.setBounds(138, 125, 72, 18);

getContentPane().add(lblNewLabel_sex);

JComboBox comboBox_sex= new JComboBox();

comboBox_sex.setModel(new DefaultComboBoxModel(new String[] {“男”, “女”}));

comboBox_sex.setBounds(191, 122, 240, 24);

getContentPane().add(comboBox_sex);

JLabel lblNewLabel_age= new JLabel(“年龄:”);

lblNewLabel_age.setBounds(138, 168, 72, 18);

getContentPane().add(lblNewLabel_age);

textField_age = new JTextField();

textField_age.setBounds(191, 165, 240, 24);

getContentPane().add(textField_age);

textField_age.setColumns(10);

JLabel lblNewLabel_IDcard= new JLabel(“身份证号码:”);

lblNewLabel_IDcard.setBounds(93, 213, 117, 18);

getContentPane().add(lblNewLabel_IDcard);

textField_IDcard = new JTextField();

textField_IDcard.setBounds(191, 210, 240, 24);

getContentPane().add(textField_IDcard);

textField_IDcard.setColumns(10);

JLabel lblNewLabel_address= new JLabel(“住址:”);

lblNewLabel_address.setBounds(138, 254, 72, 18);

getContentPane().add(lblNewLabel_address);

textField_address = new JTextField();

textField_address.setBounds(191, 251, 240, 24);

getContentPane().add(textField_address);

textField_address.setColumns(10);

JLabel lblNewLabel_phone= new JLabel(“电话:”);

lblNewLabel_phone.setBounds(138, 295, 72, 18);

getContentPane().add(lblNewLabel_phone);

textField_phone = new JTextField();

textField_phone.setBounds(191, 292, 240, 24);

getContentPane().add(textField_phone);

textField_phone.setColumns(10);

JLabel lblNewLabel_th= new JLabel(“团号:”);

lblNewLabel_th.setBounds(138, 335, 72, 18);

getContentPane().add(lblNewLabel_th);

textField_th = new JTextField();

textField_th.setBounds(191, 332, 240, 24);

getContentPane().add(textField_th);

textField_th.setColumns(10);

JLabel lblNewLabel_pt= new JLabel(“陪同:”);

lblNewLabel_pt.setBounds(138, 382, 72, 18);

getContentPane().add(lblNewLabel_pt);

textField_pt = new JTextField();

textField_pt.setText(“是否选择导游陪同?”);

textField_pt.setToolTipText(“”);

textField_pt.setBounds(191, 379, 240, 24);

getContentPane().add(textField_pt);

textField_pt.setColumns(10);

JLabel lblNewLabel_ss= new JLabel(“食宿:”);

lblNewLabel_ss.setBounds(138, 427, 72, 18);

getContentPane().add(lblNewLabel_ss);

textField_ss = new JTextField();

textField_ss.setText(“是否选择宾馆住宿?”);

textField_ss.setBounds(191, 424, 240, 24);

getContentPane().add(textField_ss);

textField_ss.setColumns(10);

JButton button_1 = new JButton(“查看旅游团信息”);

button_1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

}

});

button_1.setBounds(453, 331, 158, 27);

button_1.setFocusPainted(false);//去掉按钮周围的焦点框

button_1.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_1);

JButton button_2 = new JButton(“显示选择结果”);

button_2.setBounds(625, 331, 146, 27);

button_2.setFocusPainted(false);//去掉按钮周围的焦点框

button_2.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_2);

JButton button_3 = new JButton(“是”);

button_3.setBounds(453, 378, 72, 27);

button_3.setFocusPainted(false);//去掉按钮周围的焦点框

button_3.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_3);

button_3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“是”);

}

});

JButton button_4 = new JButton(“否”);

button_4.setBounds(539, 378, 72, 27);

button_4.setFocusPainted(false);//去掉按钮周围的焦点框

button_4.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_4);

button_4.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“无”);

}

});

JButton button_5 = new JButton(“显示选择结果”);

button_5.setBounds(625, 378, 146, 27);

button_5.setFocusPainted(false);//去掉按钮周围的焦点框

button_5.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_5);

JButton button_6 = new JButton(“是”);

button_6.setBounds(453, 421, 72, 27);

button_6.setFocusPainted(false);//去掉按钮周围的焦点框

button_6.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_6);

button_6.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“是”);

}

});

JButton button_7 = new JButton(“否”);

button_7.setBounds(539, 421, 72, 27);

button_7.setFocusPainted(false);//去掉按钮周围的焦点框

button_7.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_7);

button_7.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“无”);

}

});

JButton button_8 = new JButton(“显示选择结果”);

button_8.setBounds(625, 423, 146, 27);

button_8.setFocusPainted(false);//去掉按钮周围的焦点框

button_8.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_8);

textField_name.setText(tourist.getTourist_name());

String t = tourist.getTourist_sex();

comboBox_sex.setSelectedItem(t);

textField_age.setText(tourist.getTourist_age());

textField_IDcard.setText(tourist.getTourist_idCard());

textField_address.setText(tourist.getTourist_address());

textField_phone.setText(tourist.getTourist_phone());

textField_th.setText(tourist.getGroup_num());

textField_pt.setText(tourist.getAccompanied());

textField_ss.setText(tourist.getAccommodation());

JButton btnNewButton = new JButton(“确认修改”);

btnNewButton.setFont(new Font(“微软雅黑”, Font.PLAIN, 18));

btnNewButton.setBounds(388, 516, 124, 33);

btnNewButton.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton);

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String id = tourist.getTourist_num();

name = textField_name.getText();

sex = comboBox_sex.getSelectedItem().toString();

age = textField_age.getText();

Idcard = textField_IDcard.getText();

address = textField_address.getText();

phone = textField_phone.getText();

th = textField_th.getText();

pt = textField_pt.getText();

if (pt.equals(“是否选择导游陪同?”)) {

pt=“无”;

}

ss = textField_ss.getText();

if (ss.equals(“是否选择宾馆住宿?”)) {

ss=“无”;

}

//判断输入的信息是否为空,是否完整

if (name.equals(“”)||sex.equals(“”)||age.equals(“”)||Idcard.equals(“”)||address.equals(“”)||phone.equals(“”)||th.equals(“”)||pt.equals(“”)||ss.equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整信息!”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。

image

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
tField_age.setText(tourist.getTourist_age());

textField_IDcard.setText(tourist.getTourist_idCard());

textField_address.setText(tourist.getTourist_address());

textField_phone.setText(tourist.getTourist_phone());

textField_th.setText(tourist.getGroup_num());

textField_pt.setText(tourist.getAccompanied());

textField_ss.setText(tourist.getAccommodation());

JButton btnNewButton = new JButton(“确认修改”);

btnNewButton.setFont(new Font(“微软雅黑”, Font.PLAIN, 18));

btnNewButton.setBounds(388, 516, 124, 33);

btnNewButton.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton);

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String id = tourist.getTourist_num();

name = textField_name.getText();

sex = comboBox_sex.getSelectedItem().toString();

age = textField_age.getText();

Idcard = textField_IDcard.getText();

address = textField_address.getText();

phone = textField_phone.getText();

th = textField_th.getText();

pt = textField_pt.getText();

if (pt.equals(“是否选择导游陪同?”)) {

pt=“无”;

}

ss = textField_ss.getText();

if (ss.equals(“是否选择宾馆住宿?”)) {

ss=“无”;

}

//判断输入的信息是否为空,是否完整

if (name.equals(“”)||sex.equals(“”)||age.equals(“”)||Idcard.equals(“”)||address.equals(“”)||phone.equals(“”)||th.equals(“”)||pt.equals(“”)||ss.equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整信息!”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-7QcIU086-1712248136227)]

[外链图片转存中…(img-ROiOnr9J-1712248136227)]

[外链图片转存中…(img-pi5YGsP8-1712248136228)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。

[外链图片转存中…(img-1uN5ggHQ-1712248136228)]

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值