基于java+mysql的swing+mysql物业收费系统(java+gui)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于java+mysql的Swing+MySQL物业收费系统(java+gui)
功能介绍:
用户登陆、用户注册、收费记录、生成业单、用户管理、查询缴费、历史账单、资料设置
this.canDraged(this.headPanel);
}
// 窗体可拖拽
public void canDraged(JPanel p) {
MouseAdapter frameDrageAdapter=new MouseAdapter() {
public void mousePressed(MouseEvent e) {
mouseAtX = e.getPoint().x;
mouseAtY = e.getPoint().y;
}
};
MouseMotionAdapter motionAdapter=new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
loginUI.setLocation((e.getXOnScreen()-mouseAtX),(e.getYOnScreen()-mouseAtY));//设置拖拽后,窗口的位置
}
};
p.addMouseListener(frameDrageAdapter);
p.addMouseMotionListener(motionAdapter);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==logButton) {
isLogin();
}
if(e.getSource()==closeButton) {
System.exit(0);
}
if(e.getSource()==minButton) {
loginUI.setExtendedState(JFrame.ICONIFIED);
}
if(e.getSource()==registButton) {
// 触发注册事件
SwingUtilities.invokeLater(()->new RegistUI());
}
if(e.getSource()==forgetButton) {
// 触发找回密码事件
SwingUtilities.invokeLater(()->new ForgetUI());
}
}
public class CodeDialog {
JDialog dialog;
JTextField field01,field02;
JButton button01,button02,button03;
MyListener myListener;
@SuppressWarnings("unused")
private UserUI owner;
int flag=0;
Object[][] data;
JTable vtable;
DefaultTableModel dtm;
int row;
int column;
String code=null;
Timer timer=new Timer();
public CodeDialog(UserUI owner,Object[][] data,JTable vtable,DefaultTableModel dtm,int row,int column) {
this.data=data;
this.vtable=vtable;
this.dtm=dtm;
this.row=row;
this.column=column;
this.owner=owner;
dialog=new JDialog(owner, true);
dialog.setUndecorated(true);
dialog.setTitle("资料修改验证");
public class CodeDialog {
JDialog dialog;
JTextField field01,field02;
JButton button01,button02,button03;
MyListener myListener;
@SuppressWarnings("unused")
private UserUI owner;
int flag=0;
Object[][] data;
JTable vtable;
DefaultTableModel dtm;
int row;
int column;
String code=null;
Timer timer=new Timer();
public CodeDialog(UserUI owner,Object[][] data,JTable vtable,DefaultTableModel dtm,int row,int column) {
this.data=data;
this.vtable=vtable;
this.dtm=dtm;
this.row=row;
this.column=column;
this.owner=owner;
dialog=new JDialog(owner, true);
}
code="";
}else {
JOptionPane.showMessageDialog(null, "账户余额不足", "支付失败", JOptionPane.ERROR_MESSAGE);
}
// }else {
// JOptionPane.showMessageDialog(null, "验证码错误或者失效", "认证失败", JOptionPane.ERROR_MESSAGE);
// }
// }else {
// JOptionPane.showMessageDialog(null, "请先获取验证码", "认证失败", JOptionPane.ERROR_MESSAGE);
// }
}else {
JOptionPane.showMessageDialog(null, "验证码不能为空","警告", JOptionPane.WARNING_MESSAGE);
}
}
public void delRows(DefaultTableModel tableModel,JTable table,AdapterDAO adapterDAO) {
List<Integer> idList=new ArrayList<Integer>();
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
int[] selectedRows = table.getSelectedRows();
if(selectRows<=0) {
JOptionPane.showMessageDialog(null, "删除前要选中行", "警告", JOptionPane.WARNING_MESSAGE);
}else {
// 确认是否删除
int get = JOptionPane.showOptionDialog(null, "请确认是否删除?", "友情询问", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE, null, new Object[]{"是","否"}, "否");
if(get!=1) {
// 视觉上:倒着删避免数组下标越界
for(int i=selectRows-1;i>=0;i--) {
idList.add((Integer.parseInt(tableModel.getValueAt(selectedRows[i], 0)+"")));
tableModel.removeRow(selectedRows[i]);
}
// 数据库中:先获取选中行的第0列 -> 编号列,通过编号删除数据库中的数据
// 调用删除方法
if(adapterDAO instanceof PaymentDAOImp) {
PaymentDAOImp p=(PaymentDAOImp)adapterDAO;
p.delete(idList);
}else if(adapterDAO instanceof UserDAOImp){
UserDAOImp u=(UserDAOImp)adapterDAO;
u.delete(idList);
}
}
}
}
}
clearButton.setForeground(Color.white);
clearButton.setBackground(new Color(130,100,64));
clearButton.setFont(font1);
add(yesButton);
add(clearButton);
}
public JComboBox<String> initBox() {
JComboBox<String> box=new JComboBox<String>();
l = getUserLists();
box.addItem(" ---请选择--- ");
for (User user : l) {
box.addItem(user.getUserName());
}
return box;
}
@SuppressWarnings("unchecked")
public List<User> getUserLists() {
return (List<User>)new UserDAOImp().selectAll();
}
public ItemListener getItemListener() {
@SuppressWarnings("static-access")
ItemListener itemListener=e -> {
if(e.getStateChange()==e.SELECTED) {
if(payBox.getSelectedIndex()==0) {
field01.setText("");
}else {
if(l.size()!=0) {
for(User u:l) {
if(u.getUserName().equals(payBox.getSelectedItem())) {
field01.setText("* 业主姓名:"+u.getName());
}
}
}
}
}
};
return itemListener;
}
public List<User> getL() {
return l;
}
public void setL(List<User> l) {
this.l = l;
}
public JButton getYesButton() {
return yesButton;
}
public void setYesButton(JButton yesButton) {
this.yesButton = yesButton;
}
}catch (DuplicateKeyException e) {
return -1;// 表示表中已存在字段唯一属性的记录 -> 标志用户已存在
}
return count;
}
@Override
public List<?> selectAll() {
sql="select * from user";
List<User> list = jt.query(sql, new BeanPropertyRowMapper<User>(User.class));
return list;
}
@SuppressWarnings("unchecked")
@Override
public void delete(List<?> list) {
if (list.size()<=0) {
return;
}
sql="delete from user where ID=?";
List<Integer> l=(List<Integer>)list;
for(int id:l) {
jt.update(sql, id);
}
}
@Override
public int updateForMaster(int ID, int selectedColumn, String newValue) {
// "业主姓名":2 ,"类型":4 ,"门牌":5 ,"是否可用":6
if(selectedColumn==2) {
sql="update user set name=? where ID=?";
}else if (selectedColumn==4) {
sql="update user set userType=? where ID=?";
}else if (selectedColumn==5) {
sql="update user set place=? where ID=?";
}else if (selectedColumn==6) {
sql="update user set available=? where ID=?";
}else {
return -1;
}
int updateNum = jt.update(sql,newValue,ID);
return updateNum;
}
@Override
public int updateForUser(int ID, int selectedRow, String newValue) {
// TODO Auto-generated method stub
if(selectedRow==1) {
sql="update user set userPassword=? where ID=?";
}else if (selectedRow==2) {
sql="update user set name=? where ID=?";
}else if (selectedRow==3) {
// // 可选-上行短信扩展码(无特殊需求用户请忽略此字段)
// // request.setSmsUpExtendCode("90997");
// // 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
// request.setOutId("yourOutId");
// // 请求失败这里会抛ClientException异常
// SendSmsResponse sendSmsResponse;
// try {
// sendSmsResponse = acsClient.getAcsResponse(request);
// if (sendSmsResponse.getCode() != null
// && sendSmsResponse.getCode().equals("OK")) {
// // 请求成功
// //System.out.println("获取验证码成功!!!");
// } else {
// //如果验证码出错,会输出错误码告诉你具体原因
// //isv.MOBILE_NUMBER_ILLEGAL 手机号码非法
// /*System.out.println(sendSmsResponse.getCode());
// System.out.println("获取验证码失败...");*/
// }
// } catch (ServerException e) {
// e.printStackTrace();
// return "由于系统维护,暂时无法注册!!!";
// } catch (ClientException e) {
// e.printStackTrace();
// return "由于系统维护,暂时无法注册!!!";
// }
return "true";
}
/**
* 生成6位随机数验证码(暂时写死)
* @return
*/
public static String vcode(){
String vcode = "123456";
// for (int i = 0; i < 6; i++) {
// vcode = vcode + (int)(Math.random() * 9);
// }
return vcode;
}
/*public static void main(String[] args) {
String phonemsg = PhoneCode.getPhonemsg("15082542389", 1);
System.out.println(phonemsg);
}*/
}
if(e.getSource()==masterPaneSon1.getYesButton()) {
String uName = masterPaneSon1.getPayBox().getSelectedItem().toString();
String checkExp = masterPaneSon1.getField02().getText();
String cleanExp = masterPaneSon1.getField03().getText();
String parkExp = masterPaneSon1.getField04().getText();
if(uName.equals(masterPaneSon1.getPayBox().getItemAt(0).toString())
|checkExp.length()==0|cleanExp.length()==0|parkExp.length()==0) {
JOptionPane.showMessageDialog(null, "请选择用户或者必须设置费用(>=0)", "生成错误", JOptionPane.ERROR_MESSAGE);
}else {
int get = JOptionPane.showOptionDialog(null, "请确认是否添加业单?", "友情询问", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE, null, new Object[]{"是","否"}, "否");
if(get!=1) {
// 创建订单对象
List<Payment> insertList=new ArrayList<Payment>();
Payment payment=new Payment( uName, Integer.parseInt(checkExp), Integer.parseInt(cleanExp), Integer.parseInt(parkExp), null, "0");
insertList.add(payment);
try {
int insertNum = new PaymentDAOImp().insertObj(insertList);
JOptionPane.showMessageDialog(null, "业单生成成功:"+insertNum+"条", "添加成功",JOptionPane.PLAIN_MESSAGE);
} catch (SQLException e1) {
System.out.println("MasterListener中账单生成的SQL语句错误");
}
}
}
}
if(e.getSource()==masterPaneSon1.getClearButton()) {
masterPaneSon1.getPayBox().setSelectedIndex(0);
masterPaneSon1.getField02().setText("");
masterPaneSon1.getField03().setText("");
masterPaneSon1.getField04().setText("");
}
if(e.getSource()==masterPaneSon2.getDelButton()) {
delRows(masterPaneSon2.getDtm(), masterPaneSon2.getUserTable(), new UserDAOImp());
}
}
public void delRows(DefaultTableModel tableModel,JTable table,AdapterDAO adapterDAO) {
List<Integer> idList=new ArrayList<Integer>();
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
int[] selectedRows = table.getSelectedRows();
if(selectRows<=0) {
JOptionPane.showMessageDialog(null, "删除前要选中行", "警告", JOptionPane.WARNING_MESSAGE);
}else {
// 确认是否删除
int get = JOptionPane.showOptionDialog(null, "请确认是否删除?", "友情询问", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE, null, new Object[]{"是","否"}, "否");
if(get!=1) {
// 视觉上:倒着删避免数组下标越界
i--;
sendBtn.setText(i + "s");
sendBtn.setForeground(Color.white);
//sendBtn.setHorizontalTextPosition(JButton.CENTER);
if (i <= 0) {
//设置按钮可点击 并且停止任务
sendBtn.setEnabled(true);
sendBtn.setText("验证码");
//sendBtn.setHorizontalTextPosition(JButton.CENTER);
timer.cancel();
}
}
}, 0, 1000);
//验证手机号
String phonemsg = PhoneCode.getPhonemsg(phoneField.getText(),0);
codeString=PhoneCode.codeNum;
if(!phonemsg.equals("true")) {
JOptionPane.showMessageDialog(null, phonemsg);
}
}else {
JOptionPane.showMessageDialog(null,"电话号码不合法!","警告",JOptionPane.WARNING_MESSAGE);
}
}
public KeyAdapter getKeyAdapter() {
KeyAdapter keyAdapter=new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
int keyChar=e.getKeyChar();
if(e.getSource()==field|e.getSource()==passwordField){
if(!(new String(((char)keyChar)+"").matches("^[A-Za-z0-9]+$"))){
e.consume();
}
}
if(e.getSource()==phoneField|e.getSource()==keyField){
if(!(new String(((char)keyChar)+"").matches("^[0-9]+$"))){
e.consume();
}
}
}
};
return keyAdapter;
}
}
setUndecorated(true);
setResizable(false);
initHeadPane();
add(initJTabbedPane());
new UserListener(this);
setVisible(true);
}
public void initHeadPane() {
headPanel=new JPanel(null);
headPanel.setBounds(0, 0, 900, 60);
headPanel.setBackground(Color.white);
miniBtn=new JButton();
closeBtn=new JButton();
miniBtn.setBounds(786,5,50,50);
closeBtn.setBounds(845,5,50,50);
miniBtn.setFocusPainted(false);
closeBtn.setFocusPainted(false);
miniBtn.setBorder(null);
closeBtn.setBorder(null);
miniBtn.setBackground(null);
closeBtn.setBackground(null);
miniBtn.setIcon(new ImageIcon("mstUI_img/mini2.png"));
miniBtn.setRolloverIcon(new ImageIcon("mstUI_img/mini1.png"));
miniBtn.setPressedIcon(new ImageIcon("mstUI_img/mini3.png"));
closeBtn.setIcon(new ImageIcon("mstUI_img/close2.png"));
closeBtn.setRolloverIcon(new ImageIcon("mstUI_img/close1.png"));
closeBtn.setPressedIcon(new ImageIcon("mstUI_img/close3.png"));
headPanel.add(miniBtn);
headPanel.add(closeBtn);
JLabel showWhoJLabel=new JLabel();
showWhoJLabel.setBounds(20, 0, 600, 60);
showWhoJLabel.setFont(new Font("微软雅黑",Font.BOLD,20));
String textString="物业收费系统-居民模式 Hi! "+user.getName()+" ,今天是"+getDateStr();
//String textString="物业收费系统-居民模式 Hi! "+" ,今天是"+getDateStr();
showWhoJLabel.setText(textString);
headPanel.add(showWhoJLabel);
add(headPanel);
}
private static String getDateStr() {
Calendar c=Calendar.getInstance();
Date d=new Date();
c.setTime(d);//设置指定时间
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH)+1; //默认是0-11,我国是1-12
Object[] objs= {p.getID(),user.getUserName(),user.getName(),user.getPhone(),p.getCheckEXP(),
p.getCleanEXP(),p.getParkEXP(),p.getPayDate()};
return objs;
}
private JButton initJButton(JButton button,String title,int x,int y) {
button=new JButton(title);
button.setBounds(x,y,100, 40);
button.setBorder(null);
button.setFocusPainted(false);
button.setBackground(new Color(235,135,112));
button.setForeground(Color.WHITE);
button.setFont(new Font("幼圆",Font.PLAIN,16));
return button;
}
public JButton getDelBtn() {
return delBtn;
}
public void setDelBtn(JButton delBtn) {
this.delBtn = delBtn;
}
public DefaultTableModel getDtm() {
return dtm;
}
public void setDtm(DefaultTableModel dtm) {
this.dtm = dtm;
}
public JTable getPayedTable() {
return payedTable;
}
public void setPayedTable(JTable payedTable) {
this.payedTable = payedTable;
}
}
JOptionPane.showMessageDialog(null, "数据库异常", "找回失败", JOptionPane.ERROR_MESSAGE);
}else {
JOptionPane.showMessageDialog(null, "密码找回成功,请尝试重新登录", "成功找回", JOptionPane.PLAIN_MESSAGE);
ForgetUI.dispose();
}
}else {
JOptionPane.showMessageDialog(null, "用户不存在或者此用户预留手机号码不正确", "找回失败", JOptionPane.ERROR_MESSAGE);
}
// }else {
// JOptionPane.showMessageDialog(null, "验证码错误或者无效", "找回失败", JOptionPane.ERROR_MESSAGE);
// }
// }else {
// JOptionPane.showMessageDialog(null, "请先获取验证码", "警告", JOptionPane.WARNING_MESSAGE);
// }
}else {
JOptionPane.showMessageDialog(null, "两次输入密码不一致", "找回失败", JOptionPane.ERROR_MESSAGE);
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==sendBtn) {
codeCheck();
}
if(e.getSource()==submitBtn) {
checkRight();
}
}
private void codeCheck() {
if(phoneField.getText().matches(regexCh)) {
timer.schedule(new TimerTask() {
int i = 60;
@Override
public void run() {
sendBtn.setForeground(Color.white);
sendBtn.setBackground(Color.DARK_GRAY);
sendBtn.setEnabled(false);
i--;
sendBtn.setText(i + "s");
//sendBtn.setHorizontalTextPosition(JButton.CENTER);
if (i <= 0) {
//设置按钮可点击 并且停止任务
public class UserPaneSon3 extends JPanel{
private static final long serialVersionUID = -1804L;
private User user;
private JScrollPane jScrollPane;
private JTable vtable;
private DefaultTableModel dtm;
private String[] columnNames = {"资料","详细信息"};
private Object[][] data;
private UserUI owner;
public UserPaneSon3() {
super(null);
setBounds(0, 0, 900, 590);
setBackground(Color.WHITE);
add(initScrollPane());
dtmListener();
}
public UserPaneSon3(User user) {
super(null);
this.user=user;
setBounds(0, 0, 900, 590);
setBackground(Color.WHITE);
add(initScrollPane());
dtmListener();
}
private JScrollPane initScrollPane() {
jScrollPane=new JScrollPane();
jScrollPane.setBackground(Color.WHITE);
jScrollPane.setBounds(200, 50, 500, 349);
jScrollPane.setViewportView(getViewtable());
return jScrollPane;
}
@SuppressWarnings("serial")
private JTable getViewtable() {
data=createArr();
dtm=new DefaultTableModel(data,columnNames);
vtable=new JTable(dtm) {
// 重写这个表格的方法:设置不可编辑,但可以选中
@Override
public boolean isCellEditable(int row, int column) {
if(column==1) {
if(row==1|row==2|row==3|row==6)
return true;
}
return false;
}
};
button03.setForeground(Color.white);
dialog.add(jLabel);
dialog.add(field01);
dialog.add(jLabel2);
dialog.add(field02);
dialog.add(button01);
dialog.add(button02);
dialog.add(button03);
myListener= new MyListener();
button03.addActionListener(myListener);
button02.addActionListener(myListener);
button01.addActionListener(myListener);
dialog.setVisible(true);
}
class MyListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button03) {
TableModelListener[] tableModelListeners = dtm.getTableModelListeners();
dtm.removeTableModelListener(tableModelListeners[0]);
vtable.setValueAt(data[row][column],vtable.getSelectedRow(), 1);
dtm.addTableModelListener(tableModelListeners[0]);
dialog.dispose();
setFlag(0);
}
if(e.getSource()==button02) {
if(field02.getText().length()<=0) {
JOptionPane.showMessageDialog(null, "验证码不能为空!","警告",JOptionPane.WARNING_MESSAGE);
}else {
if(field02.getText().equals(code)) {
code="";
dialog.dispose();
JOptionPane.showMessageDialog(null, "修改成功!");
setFlag(1);
}else {
JOptionPane.showMessageDialog(null, "验证码错误或者失效", "验证失败", JOptionPane.ERROR_MESSAGE);
}
@Override
public List<?> selectOne() {
// TODO Auto-generated method stub
return null;
}
public List<User> selectOne(String userName,String phone) {
sql="select * from user where userName=? and phone=?";
List<User> query = jt.query(sql, new BeanPropertyRowMapper<User>(User.class),userName,phone);
return query;
}
@SuppressWarnings("unchecked")
public List<?> selectOne(Object obj) {
User user=(User)obj;
sql="select * from user where userName=?";
@SuppressWarnings("rawtypes")
List<User> query =(List<User>) jt.query(sql, new BeanPropertyRowMapper(User.class),user.getUserName());
return query;
}
@Override
public int updateForForget(String userName, String phone, String newPassword) {
sql="update user set userPassword=? where userName=? and phone=?";
int update = jt.update(sql,newPassword,userName,phone);
return update;
}
}
submitBtn=new JButton("注 册");
submitBtn.setFocusPainted(false);
submitBtn.setBorderPainted(false);
submitBtn.setBackground(new Color(0,90,171));
submitBtn.setFont(new Font("幼圆",Font.PLAIN,17));
submitBtn.setForeground(Color.white);
submitBtn.setBounds(220, 0, 78, 35);
jPanel07.add(submitBtn);
jPanel07.setBounds(0, 450, this.getWidth(), 50);
this.add(jPanel07);
}
public User getRegistUser() {
return registUser;
}
public void setRegistUser(User registUser) {
this.registUser = registUser;
}
public int loadToMysql(User user) throws SQLException {
List<User> list=new ArrayList<User>();
list.add(user);
int insertNum = new UserDAOImp().insertObj(list);
return insertNum;
}
}
this.submitBtn = submitBtn;
this.sendBtn = sendBtn;
}
@Override
public void mouseClicked(MouseEvent e) {
checkRight();
}
private void checkRight() {
String userNameString = field.getText();
String pwdString1 = new String (passwordField1.getPassword());
String pwdString2 = new String (passwordField2.getPassword());
String phoneString = phoneField.getText();
String keyString=keyField.getText();
if(userNameString.length()*pwdString1.length()*pwdString2.length()*phoneString.length()*keyString.length()==0) {
JOptionPane.showMessageDialog(null, "请将所有信息完善", "找回失败", JOptionPane.ERROR_MESSAGE);
}else {
if(pwdString1.equals(pwdString2)) {
// if(codeString.length()!=0) {
// if(codeString.equals(keyString)) {
List<User> selectOne = new UserDAOImp().selectOne(userNameString, phoneString);
if(selectOne.size()>0) {
int flag = new UserDAOImp().updateForForget(userNameString, phoneString, pwdString2);
if(flag<=0) {
JOptionPane.showMessageDialog(null, "数据库异常", "找回失败", JOptionPane.ERROR_MESSAGE);
}else {
JOptionPane.showMessageDialog(null, "密码找回成功,请尝试重新登录", "成功找回", JOptionPane.PLAIN_MESSAGE);
ForgetUI.dispose();
}
}else {
JOptionPane.showMessageDialog(null, "用户不存在或者此用户预留手机号码不正确", "找回失败", JOptionPane.ERROR_MESSAGE);
}
// }else {
// JOptionPane.showMessageDialog(null, "验证码错误或者无效", "找回失败", JOptionPane.ERROR_MESSAGE);
// }
// }else {
// JOptionPane.showMessageDialog(null, "请先获取验证码", "警告", JOptionPane.WARNING_MESSAGE);
// }
}else {
JOptionPane.showMessageDialog(null, "两次输入密码不一致", "找回失败", JOptionPane.ERROR_MESSAGE);
}
public Object[] setArrObj(Payment p) {
// {"账单编号","用户名","业主姓名","手机","检查费","清洁费","停车费","缴费日期"};
Object[] objs= {p.getID(),user.getUserName(),user.getName(),user.getPhone(),p.getCheckEXP(),
p.getCleanEXP(),p.getParkEXP(),p.getPayDate()};
return objs;
}
private JButton initJButton(JButton button,String title,int x,int y) {
button=new JButton(title);
button.setBounds(x,y,100, 40);
button.setBorder(null);
button.setFocusPainted(false);
button.setBackground(new Color(235,135,112));
button.setForeground(Color.WHITE);
button.setFont(new Font("幼圆",Font.PLAIN,16));
return button;
}
public JButton getDelBtn() {
return delBtn;
}
public void setDelBtn(JButton delBtn) {
this.delBtn = delBtn;
}
public DefaultTableModel getDtm() {
return dtm;
}
public void setDtm(DefaultTableModel dtm) {
this.dtm = dtm;
}
public JTable getPayedTable() {
return payedTable;
}
public void setPayedTable(JTable payedTable) {
this.payedTable = payedTable;
}
}