📄 update.java
字号:
package com.person;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.sql.*;
import java.io.*;
class Update implements ActionListener, ItemListener {
static int hit = 0;
int ID, sleeptime, amusementtime, worktime, windex = 0;
String food, picturename = "", seasonname;
JInternalFrame internalframe;
ExampleFileFilter jpgFilter, gifFilter, bothFilter;
JFileChooser filechooser = new JFileChooser(new File("."));
String s[] = { "春天", "夏天", "秋天", "冬天" };
JPanel panel = new JPanel();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
JPanel panel4 = new JPanel();
JPanel panel5 = new JPanel();
JPanel panel6 = new JPanel();
JPanel panel7 = new JPanel();
JLabel id = new JLabel("请输入ID:");
JLabel sleep_time = new JLabel("请输入睡觉时间:");
JLabel amusement_time = new JLabel("请输入娱乐时间:");
JLabel work_time = new JLabel("请输入工作时间:");
JLabel food_name = new JLabel("请输入食物名称:");
JLabel food_picture = new JLabel("请选择食物的图片:");
JLabel food_picture_show = new JLabel();
JLabel season = new JLabel("请选择季节:");
JTextField id_context = new JTextField(10);
JTextField sleep_time_context = new JTextField(10);
JTextField amusement_time_context = new JTextField(10);
JTextField work_time_context = new JTextField(10);
JTextField food_name_context = new JTextField(10);
JButton food_picture_context = new JButton("选择图片...");
JComboBox season_context = new JComboBox(s);
JButton confirm = new JButton("确定");
JButton cancel = new JButton("取消");
Update() {
hit++;
if (hit == 1) {
internalframe = new JInternalFrame("修改", true, true, false, true);
internalframe
.setFrameIcon(new ImageIcon("images/update_title.gif"));
internalframe.setLocation(250, 100);
internalframe.setSize(350, 390);
internalframe.setVisible(true);
internalframe.setResizable(false);
internalframe.addInternalFrameListener(new WinLis());
final Container cp = internalframe.getContentPane();
cp.setLayout(new BorderLayout());
panel1.setLayout(new GridLayout(1, 2));
panel1.setBackground(new Color(240, 248, 255));
Box vBox = Box.createVerticalBox();
vBox.add(Box.createVerticalStrut(5));
id.setForeground(Color.BLUE);
vBox.add(id);
vBox.add(Box.createVerticalStrut(10));
sleep_time.setForeground(Color.BLUE);
vBox.add(sleep_time);
vBox.add(Box.createVerticalStrut(10));
amusement_time.setForeground(Color.BLUE);
vBox.add(amusement_time);
vBox.add(Box.createVerticalStrut(10));
work_time.setForeground(Color.BLUE);
vBox.add(work_time);
vBox.add(Box.createVerticalStrut(10));
food_name.setForeground(Color.BLUE);
vBox.add(food_name);
vBox.add(Box.createVerticalStrut(10));
food_picture.setForeground(Color.BLUE);
vBox.add(food_picture);
vBox.add(Box.createVerticalStrut(15));
season.setForeground(Color.BLUE);
vBox.add(season);
panel1.add(vBox);
Box vBox1 = Box.createVerticalBox();
vBox1.add(Box.createVerticalStrut(5));
id_context.setForeground(Color.RED);
id_context.setBorder(BorderFactory.createLoweredBevelBorder());
vBox1.add(id_context);
vBox1.add(Box.createVerticalStrut(5));
sleep_time_context.setForeground(Color.RED);
sleep_time_context.setBorder(BorderFactory
.createLoweredBevelBorder());
vBox1.add(sleep_time_context);
vBox1.add(Box.createVerticalStrut(5));
amusement_time_context.setForeground(Color.RED);
amusement_time_context.setBorder(BorderFactory
.createLoweredBevelBorder());
vBox1.add(amusement_time_context);
vBox1.add(Box.createVerticalStrut(5));
work_time_context.setForeground(Color.RED);
work_time_context.setBorder(BorderFactory
.createLoweredBevelBorder());
vBox1.add(work_time_context);
vBox1.add(Box.createVerticalStrut(5));
food_name_context.setForeground(Color.RED);
food_name_context.setBorder(BorderFactory
.createLoweredBevelBorder());
vBox1.add(food_name_context);
vBox1.add(Box.createVerticalStrut(5));
vBox1.add(food_picture_context);
vBox1.add(Box.createVerticalStrut(5));
vBox1.add(season_context);
vBox1.add(Box.createVerticalStrut(5));
panel1.add(vBox1);
panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), "相关信息",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, Color.RED));
panel.setBackground(new Color(240, 248, 255));
panel.add(panel1);
cp.add(panel, BorderLayout.NORTH);
panel3.setLayout(new GridLayout(1, 2, 5, 5));
panel3.setBackground(new Color(240, 248, 255));
panel4.setBorder(BorderFactory.createEtchedBorder());
panel4.setBackground(new Color(240, 248, 255));
food_picture_show.setPreferredSize(new Dimension(100, 90));
panel4.add(food_picture_show);
panel3.add(panel4);
panel5.setBorder(BorderFactory.createEtchedBorder());
panel5.setLayout(new GridLayout(2, 1));
panel5.setBackground(new Color(240, 248, 255));
confirm.setPreferredSize(new Dimension(100, 30));
panel6.setBackground(new Color(240, 248, 255));
panel6.add(confirm);
panel5.add(panel6);
cancel.setPreferredSize(new Dimension(100, 30));
panel7.setBackground(new Color(240, 248, 255));
panel7.add(cancel);
panel5.add(panel7);
panel3.add(panel5);
panel2.add(panel3);
panel2.setBackground(new Color(240, 248, 255));
cp.add(panel2, BorderLayout.CENTER);
Person.desktopPane.add(internalframe);
try {
internalframe.setSelected(true);
} catch (java.beans.PropertyVetoException e) {
System.out.println("PropertyVetoException:" + e.getMessage());
}
} else {
}
season_context.addItemListener(this);
food_picture_context.addActionListener(this);
confirm.addActionListener(this);
cancel.addActionListener(this);
}
@SuppressWarnings("static-access")
public void actionPerformed(ActionEvent e) {
if (e.getSource() == food_picture_context) {
filechooser.setDialogType(JFileChooser.OPEN_DIALOG);
int select = filechooser.showOpenDialog(internalframe);
if (select == filechooser.APPROVE_OPTION) {
File file = filechooser.getSelectedFile();
picturename = file.getAbsolutePath().toString();
if (picturename.endsWith(".gif")
|| picturename.endsWith(".jpg")) {
food_picture_show.setHorizontalAlignment(JLabel.CENTER);
food_picture_show.setVerticalAlignment(JLabel.CENTER);
food_picture_show.setIcon(new ImageIcon(picturename));
} else {
JOptionPane.showMessageDialog(filechooser,
"选择的文件格式不正确,请重新选择", "错误信息",
JOptionPane.WARNING_MESSAGE);
food_picture_show.setIcon(null);
picturename = "";
}
} else if (select == filechooser.CANCEL_OPTION)
filechooser.setOpaque(true);
}
if (e.getSource() == confirm) {
if (judge() && sleep() && play() && work() && isfoodname()
&& isPicturename()) {
ID = Integer.parseInt(id_context.getText());
sleeptime = Integer.parseInt(sleep_time_context.getText());
amusementtime = Integer.parseInt(amusement_time_context
.getText());
worktime = Integer.parseInt(work_time_context.getText());
food = food_name_context.getText();
seasonname = s[windex];
if (sleeptime > 1500 || sleeptime < 0)
JOptionPane
.showMessageDialog(internalframe, "睡觉时间输入的值超出范围",
"错误信息", JOptionPane.WARNING_MESSAGE);
else if (amusementtime > 500 || amusementtime < 0)
JOptionPane
.showMessageDialog(internalframe, "娱乐时间输入的值超出范围",
"错误信息", JOptionPane.WARNING_MESSAGE);
else if (worktime < 0 || Select.energy - worktime * 0.1 < 10)
JOptionPane
.showMessageDialog(internalframe, "工作时间输入的值超出范围",
"错误信息", JOptionPane.WARNING_MESSAGE);
else {
String JDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String conURL = "jdbc:odbc:TestDB";
try {
Class.forName(JDriver);
} catch (java.lang.ClassNotFoundException e1) {
System.out.println("ForName:" + e1.getMessage());
}
try {
Connection con = DriverManager.getConnection(conURL);
Statement s = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
PreparedStatement ps = con
.prepareStatement("update person set sleep_time=?,amusement_time=?,work_time=?,food_name=?,food_picture=?,season=? where id=?");
ResultSet rs = s.executeQuery("select * from person");
while (rs.next()) {
if (ID == rs.getInt("id")) {
ps.setInt(1, sleeptime);
ps.setInt(2, amusementtime);
ps.setInt(3, worktime);
ps.setString(4, food);
ps.setString(5, picturename);
ps.setString(6, seasonname);
ps.setInt(7, ID);
ps.executeUpdate();
break;
}
if (rs.isLast()) {
JOptionPane.showMessageDialog(internalframe,
"没有该ID", "错误信息",
JOptionPane.WARNING_MESSAGE);
}
}
ps.close();
s.close();
con.close();
internalframe.dispose();
} catch (SQLException e1) {
System.out.println("SQLException:" + e1.getMessage());
}
}
}
}
if (e.getSource() == cancel)
internalframe.dispose();
}
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == season_context) {
String str = (String) e.getItem();
for (int i = 0; i < s.length; i++)
if (str == s[i])
windex = season_context.getSelectedIndex();
}
}
public boolean judge() {
if (id_context.getText().equals("")) {
JOptionPane.showMessageDialog(internalframe, "ID不能为空", "错误信息",
JOptionPane.WARNING_MESSAGE);
return false;
}
byte[] tempbyte = id_context.getText().getBytes();
for (int i = 0; i < id_context.getText().length(); i++) {
if ((tempbyte[i] < 48) || (tempbyte[i] > 57)) {
JOptionPane.showMessageDialog(internalframe, "ID输入的值不合法",
"错误信息", JOptionPane.WARNING_MESSAGE);
return false;
}
}
return true;
}
public boolean sleep() {
if (sleep_time_context.getText().equals("")) {
JOptionPane.showMessageDialog(internalframe, "睡觉时间不能为空", "错误信息",
JOptionPane.WARNING_MESSAGE);
return false;
}
byte[] tempbyte = sleep_time_context.getText().getBytes();
for (int i = 0; i < sleep_time_context.getText().length(); i++) {
if ((tempbyte[i] < 48) || (tempbyte[i] > 57)) {
JOptionPane.showMessageDialog(internalframe, "睡觉时间输入的值不合法",
"错误信息", JOptionPane.WARNING_MESSAGE);
return false;
}
}
return true;
}
public boolean play() {
if (amusement_time_context.getText().equals("")) {
JOptionPane.showMessageDialog(internalframe, "娱乐时间不能为空", "错误信息",
JOptionPane.WARNING_MESSAGE);
return false;
}
byte[] tempbyte = amusement_time_context.getText().getBytes();
for (int i = 0; i < amusement_time_context.getText().length(); i++) {
if ((tempbyte[i] < 48) || (tempbyte[i] > 57)) {
JOptionPane.showMessageDialog(internalframe, "娱乐时间输入的值不合法",
"错误信息", JOptionPane.WARNING_MESSAGE);
return false;
}
}
return true;
}
public boolean work() {
if (work_time_context.getText().equals("")) {
JOptionPane.showMessageDialog(internalframe, "工作时间不能为空", "错误信息",
JOptionPane.WARNING_MESSAGE);
return false;
}
byte[] tempbyte = work_time_context.getText().getBytes();
for (int i = 0; i < work_time_context.getText().length(); i++) {
if ((tempbyte[i] < 48) || (tempbyte[i] > 57)) {
JOptionPane.showMessageDialog(internalframe, "工作时间输入的值不合法",
"错误信息", JOptionPane.WARNING_MESSAGE);
return false;
}
}
return true;
}
public boolean isfoodname() {
if (food_name_context.getText().equals("")) {
JOptionPane.showMessageDialog(internalframe, "食物名称不能为空", "错误信息",
JOptionPane.WARNING_MESSAGE);
return false;
}
return true;
}
public boolean isPicturename() {
if (picturename.equals("")) {
JOptionPane.showMessageDialog(internalframe, "图片不能为空", "错误信息",
JOptionPane.WARNING_MESSAGE);
return false;
}
return true;
}
class WinLis extends InternalFrameAdapter {
public void internalFrameClosed(InternalFrameEvent e) {
hit = 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -