主页面代码和添加页面代码已贴出,我点击添加却加不上数据,是代码哪里的原因?求解答,谢谢!
以下为主页面代码:
package page;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JDesktopPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JTable;
import java.awt.SystemColor;
public class MainPage {
private JFrame frame;
private JMenuBar menuBar;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainPage window = new MainPage();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public MainPage() {
initialize();
frame.setVisible(true);
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("\u4E3B\u9875\u9762");
frame.setBounds(100, 100, 740, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
menuBar = new JMenuBar();
menuBar.setBackground(new Color(240, 240, 240));
menuBar.setBounds(0, 0, 714, 437);
frame.getContentPane().add(menuBar);
JMenu mnNewMenu = new JMenu("\u4EA7\u54C1\u7BA1\u7406");
menuBar.add(mnNewMenu);
JMenuItem mntmNewMenuItem = new JMenuItem("\u6DFB\u52A0\u7528\u6237");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//获取一个添加页面的对象
AddPage add = new AddPage();
//将桌面存在的内容都清理一遍
menuBar.removeAll();
//将页面加入到桌面面板
menuBar.add(add.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u67E5\u8BE2\u7528\u6237");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
SearchPage sp = new SearchPage();
//运行一次可以同时将添加页面和查询页面显示出来,新加页面之前把原有桌面
menuBar.removeAll();
//将窗口成员添加到menuBar 里面
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_1);
JMenuItem mntmNewMenuItem_2 = new JMenuItem("\u4FEE\u6539\u7528\u6237");
mntmNewMenuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
EditPage sp = new EditPage();
menuBar.removeAll();
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_2);
JMenuItem mntmNewMenuItem_3 = new JMenuItem("\u5220\u9664\u7528\u6237");
mntmNewMenuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DeleteUserPage sp = new DeleteUserPage();
menuBar.removeAll();
//将窗口成员添加到menuBar 里面
menuBar.add(sp.getFrame());
}
});
mnNewMenu.add(mntmNewMenuItem_3);
JDesktopPane desktopPane = new JDesktopPane();
desktopPane.setBackground(Color.LIGHT_GRAY);
desktopPane.setBounds(10, 52, 707, 400);
frame.getContentPane().add(desktopPane);
desktopPane.setLayout(null);
table = new JTable();
table.setBounds(0, 0, 1, 1);
frame.getContentPane().add(table);
}
}
以下为添加页面代码:
package page;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import Dao.UserDao;
import Model.User;
import service.UserService;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.ActionEvent;
public class AddPage {
private JInternalFrame frame;
private JTable table;
private JLabel lblNewLabel;
private JTextField id;
private JLabel lblNewLabel_1;
private JTextField number;
private JTextField category;
private JTextField chandi;
private JTextField price;
private JLabel label;
private JLabel label_1;
private JLabel label_2;
public JInternalFrame getFrame() {
return frame;
}
public void setFrame(JInternalFrame frame) {
this.frame = frame;
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AddPage window = new AddPage();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public AddPage() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JInternalFrame();
frame.setTitle("\u6DFB\u52A0\u9875\u9762");
frame.setBounds(0, 0, 707, 430);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 10, 596, 201);
frame.getContentPane().add(scrollPane);
table = new JTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
},
new String[] {
"id", "\u4EA7\u54C1\u7F16\u53F7", "\u4EA7\u54C1\u7C7B\u522B", "\u4EA7\u54C1\u4EF7\u683C", "\u4EA7\u5730"
}
));
//调用数据服务层类UserService往表格填充数据
new UserService().fillAll(table);
scrollPane.setViewportView(table);
lblNewLabel = new JLabel("id:");
lblNewLabel.setBounds(10, 221, 50, 24);
frame.getContentPane().add(lblNewLabel);
id = new JTextField();
id.setBounds(103, 223, 126, 22);
frame.getContentPane().add(id);
id.setColumns(10);
lblNewLabel_1 = new JLabel("\u4EA7\u54C1\u7F16\u53F7\uFF1A");
lblNewLabel_1.setBounds(10, 257, 83, 24);
frame.getContentPane().add(lblNewLabel_1);
number = new JTextField();
number.setBounds(103, 259, 126, 22);
number.setColumns(10);
frame.getContentPane().add(number);
category = new JTextField();
category.setBounds(103, 293, 126, 22);
category.setColumns(10);
frame.getContentPane().add(category);
chandi = new JTextField();
chandi.setBounds(382, 259, 126, 22);
chandi.setColumns(10);
frame.getContentPane().add(chandi);
price = new JTextField();
price.setBounds(382, 223, 126, 22);
price.setColumns(10);
frame.getContentPane().add(price);
label = new JLabel("\u4EA7\u54C1\u7C7B\u522B\uFF1A");
label.setBounds(10, 291, 83, 24);
frame.getContentPane().add(label);
label_1 = new JLabel("\u4EA7\u54C1\u4EF7\u683C\uFF1A");
label_1.setBounds(295, 221, 75, 24);
frame.getContentPane().add(label_1);
label_2 = new JLabel("\u4EA7\u5730\uFF1A");
label_2.setBounds(295, 257, 75, 24);
frame.getContentPane().add(label_2);
JButton tianjia = new JButton("\u6DFB\u52A0");
tianjia.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//获取页面的五个值
int id_v = Integer.parseInt(id.getText());
String number_v = number.getText();
String category_v = category.getText();
String price_v = price.getText();
String chandi_v = chandi.getText();
//将五个部分拼接成为一个模型层的类对象
User u = new User(id_v,number_v,category_v,price_v,chandi_v);
//调用UserDao层的插入方法将数据写入数据库
UserDao ud = new UserDao();
ud.insert(u);
//再次调用服务层的fillAll()方法,更新页面的表格
UserService us = new UserService();
us.fillAll(table);
}
});
tianjia.setBounds(382, 291, 82, 24);
frame.getContentPane().add(tianjia);
//将窗口设置为可见
frame.setVisible(true);
}
}
这是点击添加后出现的结果,如果代码正确应该把数据添加进去了,但是失败,失败了我划线的那个地方也是一闪而过……我不理解是哪里出了错误,还是说是我的MYSQL Workbench里的数据出现了问题?
package service;
import java.util.ArrayList;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import Dao.UserDao;
import Model.User;
public class UserService {
private UserDao ud;
public UserService() {
super();
// TODO Auto-generated constructor stub
ud = new UserDao();
}
//将数据库的所有记录都写入一个JTanle表格控件中
public boolean fillAll(JTable table) {
//返回数据库当中用户表的所有记录
ArrayList list = ud.getAll();
//准备表格的表头数据
String[] head = {"id","number","category","price","chandi"};
//准备表格的内容,一个二维数组
String[][] content=new String [list.size()][5];
for(int i=0;i<list.size();i++) {
//将数组列表中的数据记录对象取出来
User u = (User)list.get(i);
//拆开字段
int id = u.getId();
String number = u.getNumber();
String category = u.getCategory();
String price = u.getPrice();
String chandi = u.getChandi();
content[i][0] = id+"";
content[i][1] =number;
content[i][2] =category;
content[i][3] =price;
content[i][4] =chandi;
}
//创建数据模型对象,准备植入到表格中
DefaultTableModel model = new DefaultTableModel(content,head);
//将模型填入表格
table.setModel(model);
return true;
}
//返回部分记录
//将数据库的所有记录都写入一个JTanle表格控件中
public boolean fillSome(JTable table,String column,String value) {
System.out.println("column:"+column);
//返回数据库当中用户表的所有记录
ArrayList list = ud.getUsers(column,value);
//准备表格的表头数据
String[] head = {"id","number","category","price","chandi"};
//准备表格的内容,一个二维数组
String[][] content=new String [list.size()][5];
for(int i=0;i<list.size();i++) {
//将数组列表中的数据记录对象取出来
User u = (User)list.get(i);
//拆开字段
int id = u.getId();
String number = u.getNumber();
String category = u.getCategory();
String price = u.getPrice();
String chandi = u.getChandi();
content[i][0] = id+"";
content[i][1] =number;
content[i][2] =category;
content[i][3] =price;
content[i][4] =chandi;
}
//创建数据模型对象,准备植入到表格中
DefaultTableModel model = new DefaultTableModel(content,head);
//将模型填入表格
table.setModel(model);
return true;
}
}
你的sql中需要3个参数,但是你没有传够3个,检查一下。