• java加sqlite3右键菜单版圣经,还没检查错误


    1. package i;
    2. import java.awt.Color;
    3. import java.awt.Font;
    4. import java.awt.event.ActionEvent;
    5. import java.awt.event.ActionListener;
    6. import java.awt.event.MouseEvent;
    7. import java.awt.event.MouseListener;
    8. import java.sql.Connection;
    9. import java.sql.DriverManager;
    10. import java.sql.PreparedStatement;
    11. import java.sql.ResultSet;
    12. import java.util.ArrayList;
    13. import java.util.HashMap;
    14. import javax.swing.JFrame;
    15. import javax.swing.JMenu;
    16. import javax.swing.JMenuBar;
    17. import javax.swing.JMenuItem;
    18. import javax.swing.JOptionPane;
    19. import javax.swing.JPopupMenu;
    20. import javax.swing.JScrollPane;
    21. import javax.swing.JTextPane;
    22. import javax.swing.plaf.FontUIResource;
    23. import javax.swing.text.Style;
    24. import javax.swing.text.StyleConstants;
    25. import javax.swing.text.StyledDocument;
    26. public class Main extends JFrame implements ActionListener, MouseListener {
    27. String[] jiuyue = { "创", "出", "利", "民", "申", "书", "士", "得", "撒上", "撒下", "王上", "王下", "代上", "代下", "拉", "尼", "斯", "伯", "诗", "箴", "传", "歌", "赛", "耶", "哀", "结", "但", "何", "珥", "摩", "俄", "拿", "弥", "鸿", "哈", "番", "该", "亚", "玛" };
    28. String[] xinyue = { "太", "可", "路", "约", "徒", "罗", "林前", "林后", "加", "弗", "腓", "西", "帖前", "帖后", "提前", "提后", "多", "门", "来", "雅", "彼前", "彼后", "约壹", "约贰", "约叁", "犹", "启" };
    29. String[] mulu = { "律法书", "历史书", "诗歌·智慧书", "先知书", "四福音", "教会历史", "书信", "对约翰的启示" };
    30. String[] lei = { "律法书", "历史书", "诗歌·智慧书", "先知书", "四福音", "教会历史", "书信", "对约翰的启示" };
    31. String[] lfs = { "创世记", "出埃及记", "利未记", "民数记", "申命记" };
    32. String[] lss = { "约书亚记", "士师记", "路得记", "撒母耳记上", "撒母耳记下", "列王纪上", "列王纪下", "历代志上", "历代志下", "以斯拉记", "尼希米记", "以斯帖记" };
    33. String[] sgzhs = { "约伯记", "诗篇", "箴言", "传道书", "雅歌" };
    34. String[] xzs = { "以赛亚书", "耶利米书", "耶利米哀歌", "以西结书", "但以理书", "何西阿书", "约珥书", "阿摩司书", "俄巴底亚书", "约拿书", "弥迦书", "那鸿书", "哈巴谷书", "西番雅书", "哈该书", "撒迦利亚书", "玛拉基书" };
    35. String[] sfy = { "马太福音", "马可福音", "路加福音", "约翰福音" };
    36. String[] jhls = { "使徒行传" };
    37. String[] sx = { "罗马书", "哥林多前书", "哥林多后书", "加拉太书", "以弗所书", "腓立比书", "歌罗西书", "帖撒罗尼迦前书", "帖撒罗尼迦后书", "提摩太前书", "提摩太后书", "提多书", "腓利门书", "希伯来书", "雅各书", "彼得前书", "彼得后书", "约翰一书", "约翰二书", "约翰三书", "犹大书" };
    38. String[] dyhdqs = { "启示录" };
    39. String[][] hb = { lfs, lss, sgzhs, xzs, sfy, jhls, sx, dyhdqs };
    40. JPopupMenu jpm = new JPopupMenu();
    41. JMenu[] jm = new JMenu[lei.length];
    42. JTextPane jtp = new JTextPane();
    43. JScrollPane jsp = new JScrollPane(jtp);
    44. FontUIResource fuir = new FontUIResource("微软雅黑", Font.BOLD, 88);
    45. StyledDocument sd = jtp.getStyledDocument();
    46. Style sty = jtp.addStyle(null, null);
    47. JMenuItem[] jmi = new JMenuItem[66];
    48. public Main() {
    49. for (int i = 0; i < lei.length; i++) {
    50. jm[i] = new JMenu(lei[i]);
    51. jpm.add(jm[i]);
    52. JMenuItem[] jmi = new JMenuItem[hb[i].length];
    53. if (i == 3) {
    54. jpm.addSeparator();
    55. }
    56. for (int j = 0; j < hb[i].length; j++) {
    57. jmi[j] = new JMenuItem(hb[i][j]);
    58. jmi[j].addActionListener(this);
    59. jm[i].add(jmi[j]);
    60. }
    61. }
    62. jtp.setEditable(false);
    63. jtp.addMouseListener(this);
    64. jtp.setBackground(Color.BLACK);
    65. jtp.setFont(fuir);
    66. jtp.setText("请选择菜单中的卷,再输入要查询的章节数字,中间用空格隔开.例如查询创世记第1章第1节则先选择律法书菜单里面的创世记,接下来在弹出的提示框中输入1 1(注:1 1之间中间用空格隔开)\n");
    67. // this.setJMenuBar(jmb);
    68. this.add(jsp);
    69. this.setSize(1000, 700);
    70. this.setTitle("圣经投屏");
    71. }
    72. public static void main(String[] args) {
    73. Main m = new Main();
    74. m.setExtendedState(MAXIMIZED_BOTH);
    75. m.setDefaultCloseOperation(EXIT_ON_CLOSE);
    76. m.setVisible(true);
    77. }
    78. public static ArrayList> select(String juan, String zhang, String jie) {
    79. ArrayList> alhmss = new ArrayList>();
    80. try {
    81. Class.forName("org.sqlite.JDBC");
    82. try (Connection conn = DriverManager.getConnection("jdbc:sqlite:hb.sqlite3")) {
    83. try (PreparedStatement ps = conn.prepareStatement("select juan, zhang, jie, jingwen from t_hb where juan = ? and zhang = ? and jie between ? and 200")) {
    84. ps.setString(1, juan);
    85. ps.setString(2, zhang);
    86. ps.setString(3, jie);
    87. try (ResultSet rs = ps.executeQuery()) {
    88. while (rs.next()) {
    89. HashMap hmss = new HashMap();
    90. hmss.put("juan", rs.getString("juan"));
    91. hmss.put("zhang", rs.getString("zhang"));
    92. hmss.put("jie", rs.getString("jie"));
    93. hmss.put("jingwen", rs.getString("jingwen"));
    94. alhmss.add(hmss);
    95. }
    96. }
    97. }
    98. }
    99. } catch (Exception e) {
    100. e.printStackTrace();
    101. }
    102. return alhmss;
    103. }
    104. public void actionPerformed(ActionEvent ae) {
    105. String s = ae.getActionCommand();
    106. String shuru = JOptionPane.showInputDialog("请输入要查询的章节(例如查找所在卷1章1节到最后1节则输入:1 1(中间用空格隔开,不用输入结束的章节)):", "1 1").trim();
    107. if (shuru == null) {
    108. return;
    109. }
    110. if (shuru.equals("")) {
    111. return;
    112. }
    113. String[] zhangjie = shuru.split(" ");
    114. if (!zhangjie[0].trim().matches("^[0-9]*$") || !zhangjie[1].trim().matches("^[0-9]*$")) {
    115. return;
    116. }
    117. ArrayList> alhmss = this.select(s, zhangjie[0], zhangjie[1]);
    118. jtp.setText("");
    119. for (int i = 0; i < alhmss.size(); i++) {
    120. String zhang = alhmss.get(i).get("zhang");
    121. String jie = alhmss.get(i).get("jie");
    122. String jingwen = alhmss.get(i).get("jingwen");
    123. String zhangjiejingwen = zhang + ":" + jie + jingwen + "\n";
    124. if (i % 3 == 0) {
    125. StyleConstants.setForeground(sty, Color.CYAN);
    126. } else if (i % 3 == 1) {
    127. StyleConstants.setForeground(sty, Color.MAGENTA);
    128. } else if (i % 3 == 2) {
    129. StyleConstants.setForeground(sty, Color.YELLOW);
    130. } else {
    131. StyleConstants.setForeground(sty, Color.WHITE);
    132. }
    133. try {
    134. sd.insertString(sd.getLength(), zhangjiejingwen, sty);
    135. } catch (Exception e) {
    136. e.printStackTrace();
    137. }
    138. this.jtp.setCaretPosition(0);
    139. }
    140. }
    141. @Override
    142. public void mouseClicked(MouseEvent me) {
    143. // TODO Auto-generated method stub
    144. }
    145. @Override
    146. public void mouseEntered(MouseEvent me) {
    147. // TODO Auto-generated method stub
    148. }
    149. @Override
    150. public void mouseExited(MouseEvent me) {
    151. // TODO Auto-generated method stub
    152. }
    153. @Override
    154. public void mousePressed(MouseEvent me) {
    155. // TODO Auto-generated method stub
    156. }
    157. @Override
    158. public void mouseReleased(MouseEvent me) {
    159. if (me.isPopupTrigger()) {
    160. jpm.show(me.getComponent(), me.getX(), me.getY());
    161. }
    162. }
    163. }
    164. //
    165. //
    166. //
    167. // package i;
    168. //
    169. // import java.awt.*;
    170. // import java.awt.event.*;
    171. // import javax.swing.*;
    172. // import javax.swing.plaf.FontUIResource;
    173. // import javax.swing.text.Style;
    174. // import javax.swing.text.StyledDocument;
    175. //
    176. 左键弹出菜单
    177. // public class Main extends JFrame implements ActionListener, MouseListener {
    178. //
    179. //
    180. // public Main() {
    181. //
    182. // for (int i = 0; i < jm.length; i++) {
    183. // jm[i] = new JMenu(mulu[i]);
    184. // jpm.add(jm[i]); // 增加菜单项到菜单上
    185. // for (int j = 0; j < hb[i].length; j++) {
    186. // jmi[j] = new JMenuItem(hb[i][j]);
    187. // jm[i].add(jmi[j]);
    188. // jm[i].addActionListener(this);
    189. // }
    190. //
    191. // }
    192. // jtp.addMouseListener(this);
    193. // this.add(jsp);
    194. // getContentPane().setBackground(Color.white); // 窗口的默认背景色为白色
    195. // setSize(230, 160); // 设置窗口大小
    196. // setVisible(true); // 设置窗口为可视
    197. // setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序
    198. // }
    199. //
    200. // public static void main(String args[]) {
    201. // new Main();
    202. // }
    203. //
    204. // public void mouseReleased(MouseEvent me) {
    205. // if (me.isPopupTrigger()) {
    206. // jpm.show(me.getComponent(), me.getX(), me.getY());
    207. // }
    208. // }
    209. //
    210. // public void mouseClicked(MouseEvent me) {
    211. // }
    212. //
    213. // public void mousePressed(MouseEvent me) {
    214. // }
    215. //
    216. // public void mouseExited(MouseEvent me) {
    217. // }
    218. //
    219. // public void mouseEntered(MouseEvent me) {
    220. // }
    221. //
    222. // @Override
    223. // public void actionPerformed(ActionEvent e) {
    224. // // TODO Auto-generated method stub
    225. //
    226. // }
    227. //
    228. // }

  • 相关阅读:
    循环登录提示“您为登录或者认证已过期,请重新登录”
    Metabase可视化BI系统部署安装及简单使用
    MySQL 45 讲 | 11 怎么给字符串字段加索引?
    机器学习之算法优化(一)
    洛谷 P3367 【模板】并查集 Java
    【成像光敏描记图提取和处理】成像-光电容积描记-提取-脉搏率-估计(Matlab代码实现)
    爬虫为什么需要 HTTP 代理 IP?
    Springboot使用定时任务scheduler详解
    渗透必备:Proxifier玩转代理
    第2-3-1章 文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
  • 原文地址:https://blog.csdn.net/www_oracle_com/article/details/134431152