步骤 1 : RecordService 步骤 2 : CategoryComboBoxModel 步骤 3 : RecordListener 步骤 4 : RecordPanel 步骤 5 : 点击效果
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package service;
import java.util.Date;
import dao.RecordDAO;
import entity.Category;
import entity.Record;
public class RecordService {
RecordDAO recordDao = new RecordDAO();
public void add(int spend, Category c, String comment,Date date){
Record r = new Record();
r.spend = spend;
r.cid = c.id;
r.comment = comment;
r.date = date;
recordDao.add(r);
}
}
package service; import java.util.Date; import dao.RecordDAO; import entity.Category; import entity.Record; public class RecordService { RecordDAO recordDao = new RecordDAO(); public void add(int spend, Category c, String comment,Date date){ Record r = new Record(); r.spend = spend; r.cid = c.id; r.comment = comment; r.date = date; recordDao.add(r); } }
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package gui.model;
import java.util.List;
import javax.swing.ComboBoxModel;
import javax.swing.event.ListDataListener;
import entity.Category;
import service.CategoryService;
public class CategoryComboBoxModel implements ComboBoxModel<Category>{
public List<Category> cs = new CategoryService().list();
public Category c;
public CategoryComboBoxModel(){
if(!cs.isEmpty())
c=cs.get(0);
}
@Override
public int getSize() {
// TODO Auto-generated method stub
return cs.size();
}
@Override
public Category getElementAt(int index) {
// TODO Auto-generated method stub
return cs.get(index);
}
@Override
public void addListDataListener(ListDataListener l) {
// TODO Auto-generated method stub
}
@Override
public void removeListDataListener(ListDataListener l) {
// TODO Auto-generated method stub
}
@Override
public void setSelectedItem(Object anItem) {
c = (Category) anItem;
}
@Override
public Object getSelectedItem() {
if(!cs.isEmpty())
return c;
else
return null;
}
}
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package gui.listener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.JOptionPane;
import entity.Category;
import gui.panel.CategoryPanel;
import gui.panel.MainPanel;
import gui.panel.RecordPanel;
import gui.panel.SpendPanel;
import service.RecordService;
import util.GUIUtil;
public class RecordListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
RecordPanel p =RecordPanel.instance;
if(0==p.cbModel.cs.size()){
JOptionPane.showMessageDialog(p, "暂无消费分类,无法添加,请先增加消费分类");
MainPanel.instance.workingPanel.show(CategoryPanel.instance);
return;
}
if(!GUIUtil.checkZero(p.tfSpend,"花费金额"))
return;
int spend = Integer.parseInt(p.tfSpend.getText());
Category c = p.getSelectedCategory();
String comment = p.tfComment.getText();
Date d = p.datepick.getDate();
new RecordService().add(spend, c, comment, d);
JOptionPane.showMessageDialog(p, "添加成功");
MainPanel.instance.workingPanel.show(SpendPanel.instance);
}
}
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package gui.panel;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.jdesktop.swingx.JXDatePicker;
import entity.Category;
import gui.listener.RecordListener;
import gui.model.CategoryComboBoxModel;
import service.CategoryService;
import util.ColorUtil;
import util.GUIUtil;
public class RecordPanel extends WorkingPanel {
static{
GUIUtil.useLNF();
}
public static RecordPanel instance = new RecordPanel();
JLabel lSpend = new JLabel("花费(¥)");
JLabel lCategory = new JLabel("分类");
JLabel lComment = new JLabel("备注");
JLabel lDate = new JLabel("日期");
public JTextField tfSpend = new JTextField("0");
public CategoryComboBoxModel cbModel = new CategoryComboBoxModel();
public JComboBox<Category> cbCategory = new JComboBox<>(cbModel);
public JTextField tfComment = new JTextField();
public JXDatePicker datepick = new JXDatePicker(new Date());
JButton bSubmit = new JButton("记一笔");
public RecordPanel() {
GUIUtil.setColor(ColorUtil.grayColor, lSpend,lCategory,lComment,lDate);
GUIUtil.setColor(ColorUtil.blueColor, bSubmit);
JPanel pInput =new JPanel();
JPanel pSubmit = new JPanel();
int gap = 40;
pInput.setLayout(new GridLayout(4,2,gap,gap));
pInput.add(lSpend);
pInput.add(tfSpend);
pInput.add(lCategory);
pInput.add(cbCategory);
pInput.add(lComment);
pInput.add(tfComment);
pInput.add(lDate);
pInput.add(datepick);
pSubmit.add(bSubmit);
this.setLayout(new BorderLayout());
this.add(pInput,BorderLayout.NORTH);
this.add(pSubmit,BorderLayout.CENTER);
addListener();
}
public static void main(String[] args) {
GUIUtil.showPanel(RecordPanel.instance);
}
public Category getSelectedCategory(){
return (Category) cbCategory.getSelectedItem();
}
@Override
public void updateData() {
cbModel.cs = new CategoryService().list();
cbCategory.updateUI();
resetInput();
tfSpend.grabFocus();
}
public void resetInput(){
tfSpend.setText("0");
tfComment.setText("");
if(0!=cbModel.cs.size())
cbCategory.setSelectedIndex(0);
datepick.setDate(new Date());
}
@Override
public void addListener() {
// TODO Auto-generated method stub
RecordListener listener = new RecordListener();
bSubmit.addActionListener(listener);
}
}
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2022-07-12
这里的逻辑有点绕,能解释一下吗
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2021-01-15
Record Panel 运行时的问题
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2020-01-16
在编写RecordListener类的时候发现的问题
2020-01-14
发现一个显示错误
2020-01-01
今日消费显示为0,但是我明明记录了
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 13 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|