步骤 1 : 先看效果 步骤 2 : 布局分析 步骤 3 : CategoryComboBoxModel 步骤 4 : 日期控件 步骤 5 : RecordPanel 记一笔面板代码讲解
用于显示进行消费记录的界面
这个面板采用BorderLayout 分为北面和中间。
北面是一个JPanel,中间也是一个JPanel。 北面的JPanel使用4行2列的 GridLayout。 中间的JPanel使用默认的FlowLayout, this.setLayout(new BorderLayout()); this.add(pInput,BorderLayout.NORTH); this.add(pSubmit,BorderLayout.CENTER);
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package gui.model;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ComboBoxModel;
import javax.swing.event.ListDataListener;
public class CategoryComboBoxModel implements ComboBoxModel<String>{
public List<String> cs = new ArrayList<>();
String c;
public CategoryComboBoxModel(){
cs.add("餐饮");
cs.add("交通");
cs.add("住宿");
cs.add("话费");
c = cs.get(0);
}
@Override
public int getSize() {
return cs.size();
}
@Override
public String getElementAt(int index) {
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 = (String) anItem;
}
@Override
public Object getSelectedItem() {
// TODO Auto-generated method stub
return c;
}
}
增值内容,请先登录
完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
增值内容,请先登录
完整的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 gui.model.CategoryComboBoxModel;
import util.ColorUtil;
import util.GUIUtil;
public class RecordPanel extends JPanel{
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<String> 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);
}
public static void main(String[] args) {
GUIUtil.showPanel(RecordPanel.instance);
}
}
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2020-05-26
布局问题
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2020-04-20
这里的构造方法为什么没有用private修饰呢,可能是我学的不扎实,所以有点不明白?
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2020-04-09
“记一笔” 这个按钮能否改变在面板中的位置
2019-11-11
面板问题
2019-11-06
导入时间选择器包后(包已经导入成功)运行出现java.lang.ClassNotFoundException异常
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 6 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|