博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java记账本小项目二(图解超详细)
阅读量:3900 次
发布时间:2019-05-23

本文共 5073 字,大约阅读时间需要 16 分钟。

继续上一篇博客,博客地址在这:

接下来根据功能演示如何开发一个一个的Panel
MainPanel 是主窗体的ContentPanel,采用的是BorderLayerout的布局方式。
北边是一个工具条
中间是一个空白的Panel,用于将来显示不同的功能面板
代码如下:

package gui.panel;import util.CenterPanel;import util.GUIUtil;import javax.swing.*;import java.awt.*;import java.security.Guard;public class MainPanel extends JPanel {
//这里需要设置水晶皮肤,而且是需要放在最前面才能生效的 static {
GUIUtil.useLNF(); } //如果是采用单例模式 public static MainPanel instance=new MainPanel(); //再把各个按钮声明为public属性 public JToolBar tb=new JToolBar(); public JButton bSpend=new JButton(); public JButton bRecord=new JButton(); public JButton bCategory=new JButton(); public JButton bReport=new JButton(); public JButton bConfig=new JButton(); public JButton bBackup=new JButton(); public JButton bRecover=new JButton(); public CenterPanel workingPanel; private MainPanel(){
//setImageIcon这个方法 是给按钮设置图标和文本以及提示文字 //有下面三个参数 JButton b, String fileName, String tip GUIUtil.setImageIcon(bSpend,"home.png","消费一览"); GUIUtil.setImageIcon(bRecord,"record.png","记一笔"); GUIUtil.setImageIcon(bCategory,"category2.png","消费分类"); GUIUtil.setImageIcon(bReport,"report.png","月消费报表"); GUIUtil.setImageIcon(bConfig,"config.png","设置"); GUIUtil.setImageIcon(bBackup,"backup.png","备份"); GUIUtil.setImageIcon(bRecover,"restore.png","恢复"); tb.add(bSpend); tb.add(bRecord); tb.add(bCategory); tb.add(bReport); tb.add(bConfig); tb.add(bBackup); tb.add(bRecover); //也就是设置不能浮动 tb.setFloatable(false); //this(rate, true);也就是默认是true的 workingPanel=new CenterPanel(0.8); setLayout(new BorderLayout()); //在对位置进行设置 add(tb,BorderLayout.NORTH); add(workingPanel,BorderLayout.CENTER); } public static void main(String[] args) {
//两个参数 GUIUtil.showPanel(MainPanel.instance,1); }}

运行结果如下:

在这里插入图片描述
接下来是花费的这个画板类SpendPanel

package gui.panel;import com.objectplanet.chart.JpegEncoder;import util.CircleProgressBar;import util.ColorUtil;import util.GUIUtil;import javax.swing.*;import java.awt.*;public class SpendPanel extends JPanel {
//首先还是先对皮肤进行设定 static {
GUIUtil.useLNF(); } //这里就是创建一个对象 为什么可以直接getInstance //是因为 他是instance吗, 我等下改成别的试试看 public static SpendPanel instance=new SpendPanel(); //JLabel 就是一个可以显示图像和文本的标签 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(){
//构造函数 new一个布局管理器 this.setLayout(new BorderLayout()); //这个是之前工具栏 bar=new CircleProgressBar(); //这个也是直接调用的背景颜色 bar.setBackgroundColor(ColorUtil.blueColor); GUIUtil.setColor(ColorUtil.garyColor,lMonthSpend,lTodaySpend,lAvgSpendPerDay,lMonthLeft,lDayAvgAvailable,lMonthLeftDay,vAvgSpendPerDay,vMonthAvailable,vDayAvgAvailable,vMonthLeftDay); GUIUtil.setColor(ColorUtil.blueColor,vMonthSpend,vTodaySpend); //setFont还有这个字体设计 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(); //通过新建一个BorderLayout 来设置layout p.setLayout(new BorderLayout()); //在center的基础之上,设置west和他对应的center p.add(west(),BorderLayout.WEST); p.add(center2(),BorderLayout.CENTER); return p; } //没想到这个center2就是返回一个bar private Component center2(){
//就是上面的这个CircleProgressBar bar // minimumProgress = 0; // maximumProgress = 100; // progressText = "0%"; 这个是构造函数里的参数 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); }}

结果显示:

在这里插入图片描述

转载地址:http://fsfen.baihongyu.com/

你可能感兴趣的文章
【演歌】加賀の女 歌词翻译
查看>>
東京音頭 (东京音头) 歌词翻译
查看>>
Windows 7 下登录界面里 Ctrl + Alt + Del 无法使用
查看>>
惠山赏菊 & 梅园赏桂
查看>>
[小技巧] cat /proc/modules 显示的地址为 0
查看>>
[游戏] chrome 的小彩蛋
查看>>
napi
查看>>
_GNU_SOURCE和__USE_GNU的差别
查看>>
Linux 有了 “DTrace”
查看>>
Linux 系统中僵尸进程
查看>>
一个 2 年 Android 开发者的 18 条忠告
查看>>
标志性文本编辑器 Vim 迎来其 25 周年纪念日
查看>>
[小技巧] chrome 的 vim 插件
查看>>
在 Linux 中查看你的时区
查看>>
[小技巧] [trac] Fix AttributeError: 'NullTranslations' object has no attribute 'add'
查看>>
[小技巧] Mac OS X上键盘的键位重映射
查看>>
Java对Oracle中Clob类型数据的读取和写入
查看>>
Spring中Quartz的配置
查看>>
MyBatis 防止 % _ sql 注入攻击 解决方法
查看>>
plsql oracle 无法解析指定的连接标识符
查看>>