六爻八卦预测,是古人观察大自然运行规律总结出来的一项法则。起源于西汉京房的纳甲体系。起初是用50根蓍草,到宋朝时才有了“以钱代蓍”。预测人将三枚铜钱放于手中,双手紧扣,思其所测之事,让所测信息融贯于铜钱之中,合掌摇晃后放入卦盘中,掷六次而成卦。配以卦爻,及动变以后。通过测卦当日的干支,配以六亲及六兽,主要依靠用神的五行生旺,结合易经的爻辞,而判断事物的发展过程和结果。六爻是民间流传最广的预测方法之一,其变化有梅花易数,以及文王六十四卦的断法。相对于正宗的六爻断法又要简单许多。

1. 代码拆分

  1. 按钮布局
  2. 图片位置
  3. 生成卦图位置
  4. 卦象详解
  5. 资源(图片来源于网络,只用于学习)

jar包

卦解文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/ab4af336a7094e47b2febc0a391d5d6e.png

2. 启动类

package com.it.liuyi;import java.net.URL;/*** @author * @version 1.0*/
public class Main {public static void main(String[] args) {new Swing();}
}

3. 界面类

package com.it.liuyi;import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.URL;/*** @author * @version 1.0*/
public class Swing extends JFrame implements ActionListener{//内容面板private JPanel contentPane;private Image image;JButton jbOk = new JButton("测算");JButton jbExit =new JButton("退出");JButton jButton = new JButton("重置");
//    private String path = this.getClass().getResource("").getPath();private URL url = Swing.class.getClassLoader().getResource("1.jpg");private URL url1 = Swing.class.getResource("2.jpeg");//    InputStream input1= Swing.class.getResourceAsStream("2.jpeg");//对窗口进行初始化public Swing(){System.out.println("path="+url1);this.initFrame();jbOk.addActionListener(this);jbExit.addActionListener(this);jButton.addActionListener(this);}/*** 初始化窗口*/private void initFrame(){InputStream  input= Swing.class.getResourceAsStream("1.jpg");//窗口标题setTitle("六爻(算卦神器)");//关闭退出setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口大小setSize(900,700);//固定窗口大小setResizable(false);//设置窗口左上角位置,打开时在屏幕中间setLocationRelativeTo(null);// 内容面板contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));// 设置布局contentPane.setLayout(new BorderLayout(0, 0));setContentPane(contentPane);JPanel panel = new JPanel(new GridLayout(5, 2, 5, 10));//5行1列的表格布局panel.setBorder(new TitledBorder(null, "", TitledBorder.LEADING, TitledBorder.TOP, null, null));contentPane.add(panel, BorderLayout.CENTER);//给panel添加边框//确定按钮JPanel panel_1 = new JPanel();panel.add(panel_1);panel_1.add(jbOk);//退出按钮JPanel panel_2 = new JPanel();panel_2.add(jbExit);panel.add(panel_2);//重置JPanel panel_3 = new JPanel();panel_3.add(jButton);panel.add(panel_3);try {image= ImageIO.read(input);} catch (IOException e) {e.printStackTrace();}setIconImage(image);//窗口可见setVisible(true);}public void paint(Graphics g) {super.paint(g);InputStream input1= Swing.class.getResourceAsStream("2.jpeg");Image bj = null;try {bj = ImageIO.read(input1);} catch (IOException e) {e.printStackTrace();}g.drawImage(bj,95,370,this);}public void actionPerformed(ActionEvent e){if (e.getSource()==jbOk){System.out.println("被点击的");update(getGraphics());
//                myImg(getGraphics());}else if (e.getSource()==jbExit){System.out.println("程序退出");System.exit(1);}else if (e.getSource()==jButton){System.out.println("重置窗口");repaint();}}@Overridepublic void update(Graphics g) {super.update(g);int[] result = Algorithm.random();Graphics2D g2 = (Graphics2D) g;g2.setStroke(new BasicStroke(12.0f));int x = 100;int y = 70;Font font = new Font("黑体", Font.BOLD, 18);g2.setFont(font);g2.setColor(Color.red);String str =FileRead.piPei(result);String[] strings = str.split("\n");g2.drawString(strings[0],x,80);g2.drawString(strings[2],x+150,80);for (int i = 0; i < result.length; i++) {//            int x1 = (i+1)*x;int y1 = (i+1)*45+y;switch (result[i]) {case 6:g2.setColor(Color.BLACK);g2.drawLine(x, y1, x+100, y1);g2.drawLine(x+150, y1, x+250, y1);System.out.println("--" + "\t老阴");break;case 7:g2.setColor(Color.red);g2.drawLine(x, y1, x+250, y1);System.out.println("——" + "\t少阳");break;case 8:g2.setColor(Color.BLACK);g2.drawLine(x, y1, x+100, y1);g2.drawLine(x+150, y1, x+250, y1);System.out.println("--" + "\t少阴");break;case 9:g2.setColor(Color.red);g2.drawLine(x, y1, x+250, y1);System.out.println("——" + "\t老阳");break;}}String strLine = strings[3].substring(0,1);int j=0;g2.setColor(Color.black);for (int i=1;i<strings[3].length();i++){if (i%15==0){g2.drawString(strLine,550,100+(j+1)*30);j++;strLine="";}else {strLine +=strings[3].substring(i,i+1);}}}}

4. 生成卦图算法类

package com.it.liuyi;import java.util.Arrays;
import java.util.Random;/*** 生成六个随机数的算法* @author * @version 1.0*/
public class Algorithm {public static int[] random(){int[] result = new int[6];Random random = new Random();for (int i=result.length-1;i>=0;i--){// i-1int num1 = 2+random.nextInt(2);
//            System.out.println("num1="+num1);// i-2int num2 = 2+random.nextInt(2);
//            System.out.println("num2="+num2);// i-3int num3 = 2+random.nextInt(2);
//            System.out.println("num3="+num3);result[i] = num1+num2+num3;}return result;}public static void main(String[] args) {int[] result = random();for (int i=0;i<result.length;i++){switch (result[i]){case 6:System.out.println("--"+"\t老阴");break;case 7:System.out.println("——"+"\t少阳");break;case 8:System.out.println("--"+"\t少阴");break;case 9:System.out.println("——"+"\t老阳");break;}}}
}

5. 读取卦解文件类

package com.it.liuyi;import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;/*** @author * @version 1.0*/
public class FileRead {private static URL url = Swing.class.getResource("64.xls");public static String piPei(int[] result){InputStream input= FileRead.class.getResourceAsStream("64.xls");System.out.println("xlspath="+ url);int i;Sheet sheet;Workbook workbook = null;Cell cell1 = null,cell2 = null,celli,cellm = null,celln = null;boolean flag =false;try {//            workbook = Workbook.getWorkbook(new FileInputStream(String.valueOf(url)));workbook = Workbook.getWorkbook(input);sheet = workbook.getSheet(0);i=1;out:while (true){in:for (int j=3;j<=8;j++){celli = sheet.getCell(j,i);int num = new Integer(celli.getContents());if (num!=result[j-3]%2){i++;break ;}if (j==8){flag=true;}}if (flag){cell1 = sheet.getCell(1,i);cell2 = sheet.getCell(2,i);cellm = sheet.getCell(9,i);celln = sheet.getCell(10,i);break ;}}} catch (IOException e) {e.printStackTrace();} catch (BiffException e) {e.printStackTrace();}finally {workbook.close();}return new StringBuilder(cell1.getContents()+"\n" +cell2.getContents()+"\n"+cellm.getContents()+"\n" +celln.getContents()).toString();}public static void main(String[] args) {int[] result = {6,6,6,6,6,6};String str=piPei(result);System.out.println(str);}
}
  • 源码地址:https://gitcode.net/java8/liuyao.git

java界面小程序-模拟算卦六爻相关推荐

  1. Java Fx 小程序模拟赛马比赛

    描述: 设计一个模拟赛马比赛的软件,动画显示赛马的过程. 功能要求: 1.每局的马匹数可以设置(例如8匹马) 2.设计界面,可以填入和保存每匹马的相关参数包括:力量(与加速度相关).耐力(与持久力相关 ...

  2. JAVA关于集合类小程序--模拟新浪用户注册

    JAVA关于集合类小程序–模拟新浪用户注册 任务介绍: 编写一个模拟新浪微博用户注册的小程序,要求使用HashSet集合来实现.用户需要输入的有:用户名,密码.确认密码.生日(格式为:yyyy-mm- ...

  3. java实现小程序开发(一)

    小程序开发官方文档 一. 1.首先看授权流程技术说明其中会说明具体怎么开发小程序: 2.需要做些开发小程序前期准备的工作. 3.首先你要申请个小程序:申请小程序官网链接 具体怎么申请我想就不要说了吧- ...

  4. 基于java微信小程序的校园二手商城设计与实现

    基于java微信小程序的二手商城设计与实现 首先介绍一下SpringSecurity安全登陆框架 微信小程序 我用的是mysql数据库 这是我小程序的用例图 系统总体功能架构图 系统功能模块设计 数据 ...

  5. in java中文版百度云 thinking_小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送...

    前面写过一篇云开发实现小程序订阅消息(模板消息)推送的文章,<借助云开发实现小程序订阅消息和模板消息的推送功能>是有好多同学用的是Java写后台,所以今天就再来写一篇Java后台实现小程序 ...

  6. vue小米商城源代码_微信商城信息管理系统(java后台+小程序)

    前一段时间在公众号中发布了一套微信商城信息管理系统(java后台+小程序),也许大家可能都还记得.今天再给大家重复呈现一遍.重新梳理下,方便大家理解这是做什么用的,以便日后使用.开始正题 01 编写目 ...

  7. php 类似微信下拉菜单,微信小程序模拟下拉菜单开发实例

    本文主要和大家分享微信小程序模拟下拉菜单开发实例,希望能帮助到大家. 一.知识点 1.实现动态显示和隐藏某个控件 列表1data:{ open:false }, showitem:function() ...

  8. java 后台 小程序微信支付

    java 后台 小程序微信支付 步骤说明: 微信公众平台支付接口调试工具 #1.生成字符串: appid=appId&body=测试商品名称&mch_id=商户号&nonce_ ...

  9. 小程序消息推送(含源码)java实现小程序推送,springboot实现微信消息推送

    本文是比较老得技术来实现,用最新技术实现小程序推送,请看 5行java代码实现微信小程序模版消息推送 (含springboot后台和小程序源码) 也可以看最新的视频讲解:https://edu.csd ...

最新文章

  1. libvirt(virsh命令介绍)
  2. Delphi判断一个文件是不是JPG图片
  3. aapt2 适配之资源 id 固定
  4. grant_type为client_credentials和password二者的区别
  5. Gitlab CI-3.遇到的问题
  6. python路径在哪里设置_找Python安装目录,设置环境路径以及在命令行运行python脚本实例...
  7. tostring会空指针吗_追了多年的开发框架,你还认识指针吗?
  8. linux shell 十进制转十六进制_问1得10:shell十进制转换到任意进制,多大事儿,一行搞定!
  9. 艰难前行的故事 (《梦断代码》读后感)
  10. 因打印日志而引发的故障
  11. VC2005绿色编译器--命令行下编译C++代码
  12. 深度学习--- GAN网络原理解析
  13. 数据结构与算法分析(七)递归
  14. 使用 ifconfig 查看本机 ip
  15. android 微信表情雨,2017新年微信表情雨大召唤术-微信彩蛋表情雨2017预约 _5577安卓网...
  16. 为什么选php语言做网站,php做网站教程:PHP语言怎么做网站
  17. 计算机 优质课教案,计算机优质课教案.doc
  18. 新飞重整花落谁家? 多个“接盘侠”浮出水面
  19. 【清明特辑】那些虽败犹荣的科技先烈们
  20. 《赛博朋克2077》安装方法+使用手册。附补丁更新地址

热门文章

  1. idea各个版本区别
  2. 四川计算机专业的二本大学排名及分数线,2019-2020四川二本大学排名及分数线(理科+文科)...
  3. 偏安一隅的SaaS客服机会在哪,难点又在哪?
  4. MMGG测评 感动全球的链上自走棋——HeroesEmpires游戏拆解
  5. Chrome浏览器最常用的快捷键
  6. 图灵机器人 mysql_如何在微信小程序中制作图灵机器人?
  7. Linux中进程的退出
  8. 读书笔记系列--《VB2005-菜根谭》注释版
  9. 怎么将类似\u6570\u636e\u5e93的东西转化为汉字
  10. Python入门习题----进制转换