步骤 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 条以前的提问,请 点击查看 
			
			提问之前请登陆
			
		 
		提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢	
	 
 | 
	|||||||||||||||||||||||