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