步骤 1 : 先看效果 步骤 2 : 布局分析-整体 步骤 3 : 布局分析-南面 步骤 4 : 布局分析-北面 步骤 5 : SpendPanel 消费一览面板代码讲解 
					首先把整体是一个BorderLayerout 
					
				中间是一个Panel,采用的BorderLayerout.CENTER 下面也是一个Panel,采用的BorderLayerout.SOUTH this.add(center(), BorderLayout.CENTER); this.add(south(), BorderLayout.SOUTH); 
					南面这部分使用的是GridLayerout,采用的是2行4列的网格布局器 
					
				private JPanel south() { JPanel p = new JPanel(); p.setLayout(new GridLayout(2, 4)); p.add(lAvgSpendPerDay); p.add(lMonthLeft); p.add(lDayAvgAvailable); p.add(lMonthLeftDay); p.add(vAvgSpendPerDay); p.add(vMonthAvailable); p.add(vDayAvgAvailable); p.add(vMonthLeftDay); return p; } 
					北面这个Panel,本身也是用的BorderLayout  
					
				其自身分中西两部分 CENTER就直接使用的环形进度条 WEST 使用的是一个JPanel,这个JPanel用的是4行1列的GridLayout。 private JPanel center() { JPanel p = new JPanel(); p.setLayout(new BorderLayout()); p.add(west(), BorderLayout.WEST); p.add(center2(),BorderLayout.CENTER); return p; } 
				
					
						增值内容,请先登录
					
				
				 
		
					
		
		
					
					完整的J2SE桌面项目,从无到有完整的开发流程,涵盖全部52个知识点,154个开发步骤, 一共36个讲解视频,累计时长3小时10分59秒,大小1.94G,充实J2SE项目经验,为简历加上一个有吸引力的砝码
					 
			增值内容,点击购买 
					使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
					 
					
				package gui.panel;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import util.CircleProgressBar;
import util.ColorUtil;
import util.GUIUtil;
public class SpendPanel extends JPanel{
	static{
		GUIUtil.useLNF();
	}
	public static SpendPanel instance = new SpendPanel();
	public JLabel lMonthSpend = new JLabel("本月消费");
	public JLabel lTodaySpend = new JLabel("今日消费");
	public JLabel lAvgSpendPerDay = new JLabel("日均消费");
	public JLabel lMonthLeft = new JLabel("本月剩余");
	public JLabel lDayAvgAvailable = new JLabel("日均可用");
	public JLabel lMonthLeftDay = new JLabel("距离月末");
	public JLabel vMonthSpend = new JLabel("¥2300");
	public JLabel vTodaySpend = new JLabel("¥25");
	public JLabel vAvgSpendPerDay = new JLabel("¥120");
	public JLabel vMonthAvailable = new JLabel("¥2084");
	public JLabel vDayAvgAvailable = new JLabel("¥389");
	public JLabel vMonthLeftDay = new JLabel("15天");
	CircleProgressBar bar;
	public SpendPanel() {
		this.setLayout(new BorderLayout());
		bar = new CircleProgressBar();
		bar.setBackgroundColor(ColorUtil.blueColor);
		GUIUtil.setColor(ColorUtil.grayColor, lMonthSpend, lTodaySpend, lAvgSpendPerDay, lMonthLeft, lDayAvgAvailable,
				lMonthLeftDay, vAvgSpendPerDay, vMonthAvailable, vDayAvgAvailable, vMonthLeftDay);
		GUIUtil.setColor(ColorUtil.blueColor, vMonthSpend, vTodaySpend);
		vMonthSpend.setFont(new Font("微软雅黑", Font.BOLD, 23));
		vTodaySpend.setFont(new Font("微软雅黑", Font.BOLD, 23));
		this.add(center(), BorderLayout.CENTER);
		this.add(south(), BorderLayout.SOUTH);
	}
	private JPanel center() {
		JPanel p = new JPanel();
		p.setLayout(new BorderLayout());
		p.add(west(), BorderLayout.WEST);
		p.add(center2(),BorderLayout.CENTER);
		return p;
	}
	private Component center2() {
		return bar;
	}
	private Component west() {
		JPanel p = new JPanel();
		p.setLayout(new GridLayout(4, 1));
		p.add(lMonthSpend);
		p.add(vMonthSpend);
		p.add(lTodaySpend);
		p.add(vTodaySpend);
		return p;
	}
	private JPanel south() {
		JPanel p = new JPanel();
		p.setLayout(new GridLayout(2, 4));
		p.add(lAvgSpendPerDay);
		p.add(lMonthLeft);
		p.add(lDayAvgAvailable);
		p.add(lMonthLeftDay);
		p.add(vAvgSpendPerDay);
		p.add(vMonthAvailable);
		p.add(vDayAvgAvailable);
		p.add(vMonthLeftDay);
		return p;
	}
	public static void main(String[] args) {
		
		GUIUtil.showPanel(SpendPanel.instance);
	}
}
 
								
										
									
								
							
				HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
			 
			 
			
			
			
			
			
		
		
		
		 	问答区域     
		 	
				
		  
	 
	  		
	  
	  	2021-08-04
	  		
	  				
	  					 
	  
					
						不是说单例吗,为什么它构造方法公有 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  	    
	    
	  
	  		
	  
	  	2020-10-08
	  		
	  				
	  					 
	  
					
						bar显示的颜色异常 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  
 
3 个答案 
	 
woa115205 跳转到问题位置 答案时间:2021-11-21 因为你的是setBackgound()而不是setBackgroundColor() 
		
							
		
		
		
		
	
		
		yun_5 跳转到问题位置 答案时间:2021-04-06 我也出现跟你一样的问题。可以反过来推理,没有颜色可能是 ColorUtil.blueColor 定义不一样,所以我不用这个方法,直接 new 一个Color值给进 setBackgroundColor 方法,然后还是黑色,说明不是颜色定义问题(如果变色了就是ColorUtil类里方法没写好)而是因为 CircleProgressBar 里的 get/setBackgroundColor 方法没有正确执行,所以就去那个类里面检查 get/setBackgroundColor 方法.然后我就发现是粗心写错了. 
		
							
		
			
			
		
		
		
			
		
		
	
		
		how2j 跳转到问题位置 答案时间:2020-10-15 你的 ColorUtil.blueColor 是否和我的定义不一样呢? 
		
							
		
		
		
		
	
	
	
		回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢	
	 
	  		
	  
	  	2020-02-18
	  		
	  				
	  					 
	  
					
						一个错误:A Java Exception has occurred 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  	    
	    
	  
	  		
	  
	  	2019-10-30
	  		
	  				
	  					 
	  
					
						CircleProgresBar 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  	    
	    
	  
	  		
	  
	  	2019-06-21
	  		
	  				
	  					 
	  
					
						我天哪 ,为啥顺序还不一样了?还有我的环形进度条咋少了点?? 
					
					
						
							
						
											
							
					
					
					
	   
	  
	  
	  	    
	    
	  提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 13 条以前的提问,请 点击查看 
			
			提问之前请登陆
			
		 
		提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢	
	 
 | 
	|||||||||||||||