Java核心代码

package b;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Hashtable;
import java.util.Random;
import java.util.Vector;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.Timer;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class Main {

	private static GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
	private static GraphicsDevice[] graphicsDevices = graphicsEnvironment.getScreenDevices();
	private static int graphicsDevicesLength = graphicsDevices.length;
	private static JFrame jFrame = new JFrame("主屏幕", graphicsDevices[0].getDefaultConfiguration());
	private static String[] s = { "创世记", "出埃及记", "利未记", "民数记", "申命记", "约书亚记", "士师记", "路得记", "撒母耳记上", "撒母耳记下", "列王纪上",
			"列王纪下", "历代志上", "历代志下", "以斯拉记", "尼希米记", "以斯帖记", "约伯记", "诗篇", "箴言", "传道书", "雅歌", "以赛亚书", "耶利米书", "耶利米哀歌",
			"以西结书", "但以理书", "何西阿书", "约珥书", "阿摩司书", "俄巴底亚书", "约拿书", "弥迦书", "那鸿书", "哈巴谷书", "西番雅书", "哈该书", "撒迦利亚书", "玛拉基书",
			"马太福音", "马可福音", "路加福音", "约翰福音", "使徒行传", "罗马书", "哥林多前书", "哥林多后书", "加拉太书", "以弗所书", "腓立比书", "歌罗西书", "帖撒罗尼迦前书",
			"帖撒罗尼迦后书", "提摩太前书", "提摩太后书", "提多书", "腓利门书", "希伯来书", "雅各书", "彼得前书", "彼得后书", "约翰壹书", "约翰贰书", "约翰叁书", "犹大书",
			"启示录" };
	private static String[] s0 = { "律法书", "王国前历史书", "王国时历史书", "被掳后历史书", "诗歌·智慧书", "大先知书", "王国时小先知书", "被掳后小先知书", "四福音",
			"教会历史", "保罗书信", "其他使徒书信", "对约翰的启示" };
	private static String[] s1 = { "创世记", "出埃及记", "利未记", "民数记", "申命记" };
	private static String[] s2 = { "约书亚记", "士师记", "路得记" };
	private static String[] s3 = { "撒母耳记上", "撒母耳记下", "列王纪上", "列王纪下", "历代志上", "历代志下" };
	private static String[] s4 = { "以斯拉记", "尼希米记", "以斯帖记" };
	private static String[] s5 = { "约伯记", "诗篇", "箴言", "传道书", "雅歌" };
	private static String[] s6 = { "以赛亚书", "耶利米书", "耶利米哀歌", "以西结书", "但以理书" };
	private static String[] s7 = { "何西阿书", "约珥书", "阿摩司书", "俄巴底亚书", "约拿书", "弥迦书", "那鸿书", "哈巴谷书", "西番雅书" };
	private static String[] s8 = { "哈该书", "撒迦利亚书", "玛拉基书" };
	private static String[] s9 = { "马太福音", "马可福音", "路加福音", "约翰福音" };
	private static String[] s10 = { "使徒行传" };
	private static String[] s11 = { "罗马书", "哥林多前书", "哥林多后书", "加拉太书", "以弗所书", "腓立比书", "歌罗西书", "帖撒罗尼迦前书", "帖撒罗尼迦后书",
			"提摩太前书", "提摩太后书", "提多书", "腓利门书" };
	private static String[] s12 = { "希伯来书", "雅各书", "彼得前书", "彼得后书", "约翰壹书", "约翰贰书", "约翰叁书", "犹大书" };
	private static String[] s13 = { "启示录" };
	private static String[] sExit = { "退出" };
	private static String[][] sShengJing = { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13 };
	private static Color[] c4 = { new Color(255, 127, 127), new Color(127, 255, 127), new Color(127, 255, 255),
			new Color(255, 255, 127) };
	private static Color[] c7 = { Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.CYAN, Color.magenta,
			Color.PINK };
	private static JLabel jLabel = new JLabel("彩虹圣经投屏");
	private static JTextPane jTextPane = new JTextPane();
	private static JScrollPane jScrollPane = new JScrollPane(jTextPane);
	private static JScrollBar jScrollBar = jScrollPane.getVerticalScrollBar();

	private static JPopupMenu jPopupMenu = new JPopupMenu();
	private static JMenu[] jMenus = new JMenu[s0.length];

	private static int speed = 0;

	private static Timer timer2 = null;
	private static Random random = new Random();
	private static Color[] c4t = {
			new Color(200 + random.nextInt(55), 100 + random.nextInt(27), 100 + random.nextInt(27)),
			new Color(100 + random.nextInt(27), 200 + random.nextInt(55), 200 + random.nextInt(27)),
			new Color(100 + random.nextInt(27), 200 + random.nextInt(55), 200 + random.nextInt(55)),
			new Color(200 + random.nextInt(55), 200 + random.nextInt(55), 100 + random.nextInt(27)) };

	public static void Main0() {
		jFrame.setBounds(0, 0, 1900, 1000);
		jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		// jFrame.setUndecorated(true);

		jTextPane.setEditable(false);
		jFrame.add(jScrollPane, BorderLayout.CENTER);
		jTextPane.addKeyListener(new KeyListener() {
			public void keyTyped(KeyEvent e) {
			}

			public void keyReleased(KeyEvent e) {
			}

			public void keyPressed(KeyEvent e) {
				int i = e.getKeyCode();
				int getValue = jScrollBar.getValue();
				if (i == KeyEvent.VK_E) {
					jScrollBar.setValue(getValue -= 5);
				} else if (i == KeyEvent.VK_D) {
					jScrollBar.setValue(getValue += 5);
				} else if (i == KeyEvent.VK_UP || i == KeyEvent.VK_DOWN || i == KeyEvent.VK_LEFT
						|| i == KeyEvent.VK_RIGHT) {
					e.consume();
				} else if (i == KeyEvent.VK_ESCAPE) {
					int result = JOptionPane.showConfirmDialog(null, "退出", "退出", JOptionPane.YES_NO_OPTION,
							JOptionPane.QUESTION_MESSAGE);
					if (result == JOptionPane.OK_OPTION) {
						jFrame.setVisible(false);
						jFrame.dispose();
						System.exit(0);
						return;
					}
				}
			}
		});

		for (int i = 0; i < s0.length; i++) {
			jMenus[i] = new JMenu(s0[i]);
			jMenus[i].setFont(new Font("微软雅黑", Font.BOLD, 20));
			if (i > 7) {
				jMenus[i].setForeground(Color.RED);
			}
			jPopupMenu.add(jMenus[i]);
			JMenuItem[] jMenuItems = new JMenuItem[sShengJing[i].length];
			for (int j = 0; j < sShengJing[i].length; j++) {
				jMenuItems[j] = new JMenuItem(sShengJing[i][j]);
				if (i > 7) {
					jMenuItems[j].setForeground(Color.RED);
				}
				jMenuItems[j].setFont(new Font("微软雅黑", Font.BOLD, 20));
				jMenuItems[j].addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {

						String s = e.getActionCommand();
						if (!s.equals("")) {
							String[] slist = input(s);
							jspFill(jTextPane, slist[0], slist[1], slist[2]);
						}

					}
				});
				jMenus[i].add(jMenuItems[j]);
			}
		}

		jTextPane.addMouseListener(new MouseListener() {

			public void mouseReleased(MouseEvent e) {
				if (e.isPopupTrigger()) {
					jPopupMenu.show(e.getComponent(), e.getX(), e.getY());
					System.out.println(jScrollPane.getBounds());
					System.out.println(jTextPane.getBounds());
					System.out.println(jTextPane.getLocationOnScreen());
				}
			}

			public void mousePressed(MouseEvent e) {
			}

			public void mouseExited(MouseEvent e) {
			}

			public void mouseEntered(MouseEvent e) {
			}

			public void mouseClicked(MouseEvent e) {
			}

		});

	}

	public static String[] input(String FullName) {
		String ChapterSN = "";
		String VerseSN = "";

		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();
		}
		String[] slist = { FullName, ChapterSN, VerseSN };
		return slist;
	}

	public static void main(String[] args) {
		Main0();
		jFrame.setVisible(true);
	}

	public static void jspFill(JTextPane jTextPane, String FullName, String ChapterSN, String VerseSN) {
		try {
			jTextPane.setFont(new Font("", Font.BOLD, 100));
			jTextPane.setText("");
			String s = FullName + "第" + ChapterSN + "章\n";
			Vector<Hashtable<String, Object>> vhso = selectSqlite3(FullName, ChapterSN, VerseSN);

			for (int i = 0; i < vhso.size(); i++) {

				String jie = vhso.get(i).get("VerseSN").toString();
				String jingwen = vhso.get(i).get("strjw").toString();
				s += jie + jingwen + "\n";

			}
			jTextPane.setText(s);
		} catch (Exception e) {
			e.printStackTrace();
		}
		jTextPane.setCaretPosition(0);
		jTextPane.requestFocusInWindow();

	}

	public static Vector<Hashtable<String, Object>> selectSqlite3(String FullName, String ChapterSN, String VerseSN) {

		Vector<Hashtable<String, Object>> vhso = new Vector<Hashtable<String, Object>>();

		try {
			Class.forName("org.sqlite.JDBC");
			try (Connection connection = DriverManager.getConnection("jdbc:sqlite:shengjing.sqlite3");
					PreparedStatement preparedStatement = connection.prepareStatement(
							"select * from t_shengjing where FullName = ? and ChapterSN = ? and VerseSN >= ? order by rowid asc");) {
				preparedStatement.setString(1, FullName);
				preparedStatement.setString(2, ChapterSN);
				preparedStatement.setString(3, VerseSN);
				try (ResultSet resultSet = preparedStatement.executeQuery();) {
					ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
					int getColumnCount = resultSetMetaData.getColumnCount();

					while (resultSet.next()) {
						Hashtable<String, Object> hso = new Hashtable<String, Object>();
						for (int i = 1; i <= getColumnCount; i++) {
							String getColumnName = resultSetMetaData.getColumnName(i);
							Object sCellValue = resultSet.getObject(getColumnName);
							if (sCellValue == null) {
								sCellValue = "";
							}
							hso.put(getColumnName, sCellValue);
						}
						vhso.add(hso);
					}
				}
			}
		} catch (Exception exception) {
			exception.printStackTrace();
		}

		return vhso;

	}

	public static Vector<Hashtable<String, Object>> selectAccess(String FullName, String ChapterSN, String VerseSN) {

		Vector<Hashtable<String, Object>> vhso = new Vector<Hashtable<String, Object>>();

		try {
			Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
			try (Connection connection = DriverManager.getConnection("jdbc:ucanaccess://bible7.dat", "admin",
					"gqrjabcde");
					PreparedStatement preparedStatement = connection.prepareStatement(
							"select * from bible, bibleid where bible.VolumeSN = bibleid.SN and FullName = ? and ChapterSN = ? and VerseSN >= ? order by bible.id asc");) {
				preparedStatement.setString(1, FullName);
				preparedStatement.setString(2, ChapterSN);
				preparedStatement.setString(3, VerseSN);
				try (ResultSet resultSet = preparedStatement.executeQuery();) {
					ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
					int getColumnCount = resultSetMetaData.getColumnCount();
					while (resultSet.next()) {
						Hashtable<String, Object> hso = new Hashtable<String, Object>();
						for (int i = 1; i <= getColumnCount; i++) {
							String getColumnName = resultSetMetaData.getColumnName(i);
							Object sCellValue = resultSet.getObject(getColumnName);
							if (sCellValue == null) {
								sCellValue = "";
							}
							hso.put(getColumnName, sCellValue);
						}
						vhso.add(hso);
					}
				}
			}
		} catch (Exception exception) {
			exception.printStackTrace();
		}

		return vhso;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值