彩虹java圣经,edws速度1-9速度可以控制版(未检查错误)

package a;

import javax.swing.*;
import javax.swing.plaf.FontUIResource;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;

public class Main extends JFrame implements ActionListener, KeyListener {
	public static void main(String[] args) {
		Main m = new Main();
		m.setBounds(0, 0, 1000, 700);
		m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		m.setExtendedState(JFrame.MAXIMIZED_BOTH);

		// m.pack();
		m.setVisible(true);
	}

	public Main() {
		this.setJMenuBar(this.jmb());
		this.add(this.jspCenter());
		this.jsp.setEnabled(false);
	}

	public JMenuBar jmb() {
		JMenuBar jmb = new JMenuBar();

		String[] sLei = { "律法书", "王国前历史书", "王国时历史书", "被掳后历史书", "诗歌·智慧书", "大先知书", "王国时小先知书", "被掳后小先知书", "四福音", "教会历史",
				"保罗书信", "其他使徒书信", "对约翰的启示" };
		String[] sCsj = { "创世记", "出埃及记", "利未记", "民数记", "申命记" };
		String[] sLss0 = { "约书亚记", "士师记", "路得记" };
		String[] sLss1 = { "撒母耳记上", "撒母耳记下", "列王纪上", "列王纪下", "历代志上", "历代志下" };
		String[] sLss2 = { "以斯拉记", "尼希米记", "以斯帖记" };
		String[] sSgzhs = { "约伯记", "诗篇", "箴言", "传道书", "雅歌" };
		String[] sXzs0 = { "以赛亚书", "耶利米书", "耶利米哀歌", "以西结书", "但以理书" };
		String[] sXzs1 = { "何西阿书", "约珥书", "阿摩司书", "俄巴底亚书", "约拿书", "弥迦书", "那鸿书", "哈巴谷书", "西番雅书" };
		String[] sXzs2 = { "哈该书", "撒迦利亚书", "玛拉基书" };
		String[] sSfy = { "马太福音", "马可福音", "路加福音", "约翰福音" };
		String[] sJhls = { "使徒行传" };
		String[] sSx0 = { "罗马书", "哥林多前书", "哥林多后书", "加拉太书", "以弗所书", "腓立比书", "歌罗西书", "帖撒罗尼迦前书", "帖撒罗尼迦后书", "提摩太前书",
				"提摩太后书", "提多书", "腓利门书" };
		String[] sSx1 = { "希伯来书", "雅各书", "彼得前书", "彼得后书", "约翰壹书", "约翰贰书", "约翰叁书", "犹大书" };
		String[] sDyhdqs = { "启示录" };
		String[][] sHB = { sCsj, sLss0, sLss1, sLss2, sSgzhs, sXzs0, sXzs1, sXzs2, sSfy, sJhls, sSx0, sSx1, sDyhdqs };
		JMenu[] jm = new JMenu[sLei.length];
		Color[] c = { new Color(255, 51, 51), new Color(255, 153, 102), new Color(255, 255, 0), new Color(0, 255, 0),
				new Color(0, 255, 255), new Color(0, 204, 255), new Color(204, 102, 255), new Color(255, 0, 204),
				new Color(255, 51, 51), new Color(255, 102, 51), new Color(255, 255, 0), new Color(0, 255, 0),
				new Color(0, 255, 255) };
		for (int i = 0; i < sLei.length; i++) {
			jm[i] = new JMenu(sLei[i]);
			jm[i].setFont(new Font("微软雅黑", Font.BOLD, jm[i].getFont().getSize()));

			jmb.add(jm[i]);
			JMenuItem[] jmi = new JMenuItem[sHB[i].length];

			for (int j = 0; j < sHB[i].length; j++) {
				jmi[j] = new JMenuItem(sHB[i][j]);
				jmi[j].setFont(new Font("微软雅黑", Font.BOLD, 20));
				jmi[j].setBackground(c[i]);
				jmi[j].addActionListener(this);
				jm[i].add(jmi[j]);
				jm[i].addSeparator();
			}
		}

		return jmb;
	}

	JTextPane jtp = new JTextPane();
	JScrollPane jsp = new JScrollPane(jtp);
//	Timer t = new Timer(20, this);

	public JScrollPane jspCenter() {
		this.jtp.setEditable(false);
		this.jtp.setBackground(Color.BLACK);
		this.jtp.setFont(new FontUIResource("微软雅黑", Font.BOLD, 80));
		this.jtp.addKeyListener(this);
		return this.jsp;
	}

	public void actionPerformed(ActionEvent ae) {
		String s = ae.getActionCommand();
		System.out.println(s);
		if (!s.equals("")) {
			this.jspFill(s);
		}

	}

	public void keyPressed(KeyEvent ke) {
		int i = ke.getKeyCode();
		System.out.println(i);
		JScrollBar jsb = jsp.getVerticalScrollBar();
		int j = jsb.getValue();

		if (i == 68 || i == 83) {
			jsb.setValue(j += 5);
		} else if (i == 69 || i == 87) {
			jsb.setValue(j -= 5);
		} else if (i == 97 || i == 49) {
			jsb.setValue(j += 1);
		} else if (i == 98 || i == 50) {
			jsb.setValue(j += 2);
		} else if (i == 99 || i == 51) {
			jsb.setValue(j += 3);
		} else if (i == 100 || i == 52) {
			jsb.setValue(j += 4);
		} else if (i == 101 || i == 53) {
			jsb.setValue(j += 5);
		} else if (i == 102 || i == 54) {
			jsb.setValue(j += 6);
		} else if (i == 103 || i == 55) {
			jsb.setValue(j += 7);
		} else if (i == 104 || i == 56) {
			jsb.setValue(j += 8);
		} else if (i == 105 || i == 57) {
			jsb.setValue(j += 9);
		}
	}

	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub

	}

	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub

	}

	public void jspFill(String s) {
		String ChapterSN = "";
		String VerseSN = "";

		UIManager.put("OptionPane.messageFont", new FontUIResource("微软雅黑", Font.BOLD, 20));
		UIManager.put("OptionPane.buttonFont", new FontUIResource("微软雅黑", Font.BOLD, 20));
		UIManager.put("TextField.font", new FontUIResource("微软雅黑", Font.BOLD, 20));
		while (ChapterSN.equals("")) {
			String jopid = JOptionPane.showInputDialog("请输入要查询的章数", "1");
			if (jopid == null || jopid.equals("") || jopid.length() > 3 || !jopid.trim().matches("^[0-9]*$")) {
				continue;
			}
			ChapterSN = jopid.trim();
		}

		while (VerseSN.equals("")) {
			String jopid = JOptionPane.showInputDialog("请输入要查询的节数", "1");
			if (jopid == null || jopid.equals("") || jopid.length() > 3 || !jopid.trim().matches("^[0-9]*$")) {
				continue;
			}
			VerseSN = jopid.trim();
		}

		ArrayList<HashMap<String, String>> alhmss = this.select(s, ChapterSN, VerseSN);
		this.jtp.setText("");
		StyledDocument sd = jtp.getStyledDocument();
		Style sty = jtp.addStyle(null, null);

		for (int i = 0; i < alhmss.size(); i++) {
			String zhang = alhmss.get(i).get("zhang");
			String jie = alhmss.get(i).get("jie");
			String jingwen = alhmss.get(i).get("jingwen");
			String zhangjiejingwen = "【" + s + "】" + zhang + ":" + jie + jingwen + "\n";

			if (i % 8 == 0) {
				StyleConstants.setForeground(sty, new Color(255, 0, 102));
			} else if (i % 8 == 1) {
				StyleConstants.setForeground(sty, new Color(255, 102, 51));
			} else if (i % 8 == 2) {
				StyleConstants.setForeground(sty, new Color(255, 255, 102));
			} else if (i % 8 == 3) {
				StyleConstants.setForeground(sty, new Color(0, 255, 0));
			} else if (i % 8 == 4) {
				StyleConstants.setForeground(sty, new Color(0, 255, 255));
			} else if (i % 8 == 5) {
				StyleConstants.setForeground(sty, new Color(0, 204, 255));
			} else if (i % 8 == 6) {
				StyleConstants.setForeground(sty, new Color(204, 51, 255));
			} else if (i % 8 == 7) {
				StyleConstants.setForeground(sty, new Color(255, 102, 255));
			} else {
				StyleConstants.setForeground(sty, Color.WHITE);
			}

			try {
				sd.insertString(sd.getLength(), zhangjiejingwen, sty);
			} catch (Exception e) {
				e.printStackTrace();
			}

		}

		this.jtp.setCaretPosition(0);
		this.jtp.requestFocusInWindow();

	}

	public static ArrayList<HashMap<String, String>> select(String juan, String zhang, String jie) {
		ArrayList<HashMap<String, String>> alhmss = new ArrayList<HashMap<String, String>>();
		try {
			Class.forName("org.sqlite.JDBC");
			try (Connection conn = DriverManager.getConnection("jdbc:sqlite:hb.sqlite3")) {
				try (PreparedStatement ps = conn.prepareStatement(
						"select juan, suoxie, zhang, jie, jingwen from t_hb where juan = ? and zhang = ? and jie between ? and 200")) {
					ps.setString(1, juan);
					ps.setString(2, zhang);
					ps.setString(3, jie);
					try (ResultSet rs = ps.executeQuery()) {
						while (rs.next()) {
							HashMap<String, String> hmss = new HashMap<String, String>();
							hmss.put("juan", rs.getString("juan"));
							hmss.put("suoxie", rs.getString("suoxie"));
							hmss.put("zhang", rs.getString("zhang"));
							hmss.put("jie", rs.getString("jie"));
							hmss.put("jingwen", rs.getString("jingwen"));
							alhmss.add(hmss);
						}
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return alhmss;
	}

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值