java四色圣经。(未检查错误)

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.setTitle("彩虹圣经-----S和D向后滚动,W和E向前滚动,1~9向后滚动,1速度最慢,9速度最快");
		m.setVisible(true);
	}

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

	public JMenuBar jmb() {
		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 };
		JMenuBar jmb = new JMenuBar();
		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 % 4 == 0) {
				StyleConstants.setForeground(sty, Color.PINK);
			} else if (i % 4 == 1) {
				StyleConstants.setForeground(sty, Color.GREEN);
			} else if (i % 4 == 2) {
				StyleConstants.setForeground(sty, Color.CYAN);
			} else if (i % 4 == 3) {
				StyleConstants.setForeground(sty, Color.YELLOW);
			} 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;
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值