package a;
import javax.swing.*;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
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.*;
import java.nio.file.CopyOption;
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, MouseListener, PopupMenuListener {
private JScrollBar jsb2;
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("alsdfjlas");
m.setVisible(true);
}
public Main() {
this.add(this.jsp());
}
JTextPane jtp = new JTextPane();
JScrollPane jsp = new JScrollPane(jtp);
public JScrollPane jsp() {
this.jtp.setEditable(false);
this.jtp.setBackground(Color.BLACK);
this.jtp.setFont(new FontUIResource("微软雅黑", Font.BOLD, 80));
this.jtp.addMouseListener(this);
this.jsp.setVerticalScrollBar(this.jsp2.getVerticalScrollBar());
this.jsp2.setVerticalScrollBar(this.jsp.getVerticalScrollBar());
this.jtp.addKeyListener(this);
return jsp;
}
public JPopupMenu jpm() {
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};
JPopupMenu jpm = new JPopupMenu("圣经目录");
JMenu[] jm = new JMenu[sLei.length];
jpm.addPopupMenuListener(this);
for (int i = 0; i < jm.length; i++) {
if (i == 8) {
jpm.addSeparator();
}
jm[i] = new JMenu(sLei[i]);
jm[i].setFont(new FontUIResource("微软雅黑", Font.BOLD, 20));
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 FontUIResource("微软雅黑", Font.BOLD, 20));
jmi[j].addActionListener(this);
jm[i].add(jmi[j]);
}
jpm.add(jm[i]);
}
return jpm;
}
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("");
this.jtp2.setText("");
StyledDocument sd = jtp.getStyledDocument();
Style sty = jtp.addStyle(null, null);
StyledDocument sd2 = jtp2.getStyledDocument();
Style sty2 = jtp2.addStyle(null, null);
Color[] c = {new Color(255, 0, 0), new Color(255, 128, 64), new Color(255, 255, 0), new Color(128, 255, 128),
new Color(0, 255, 255), new Color(0, 128, 255), new Color(255, 0, 255), new Color(255, 128, 255)};
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";
StyleConstants.setForeground(sty, c[i % 8]);
StyleConstants.setForeground(sty2, c[i % 8]);
try {
sd.insertString(sd.getLength(), zhangjiejingwen, sty);
sd2.insertString(sd2.getLength(), zhangjiejingwen, sty2);
} catch (Exception e) {
e.printStackTrace();
}
}
this.jtp.setCaretPosition(0);
this.jtp2.setCaretPosition(0);
this.jtp.requestFocusInWindow();
this.jtp2.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;
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
this.jpm().show(e.getComponent(), e.getX(), e.getY());
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if (!s.equals("")) {
this.jspFill(s);
}
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent ke) {
int i = ke.getKeyCode();
System.out.println(i);
JScrollBar jsb = jsp.getVerticalScrollBar();
JScrollBar jsb2 = jsp2.getVerticalScrollBar();
int j = jsb.getValue();
int k = jsb2.getValue();
if (i == 68 || i == 83) {
jsb.setValue(j += 5);
jsb2.setValue(k += 5);
} else if (i == 69 || i == 87) {
jsb.setValue(j -= 5);
jsb2.setValue(k -= 5);
} else if (i == 97 || i == 49) {
jsb.setValue(j += 1);
jsb2.setValue(k += 1);
} else if (i == 98 || i == 50) {
jsb.setValue(j += 2);
jsb2.setValue(k += 2);
} else if (i == 99 || i == 51) {
jsb.setValue(j += 3);
jsb2.setValue(j += 3);
} else if (i == 100 || i == 52) {
jsb.setValue(j += 4);
jsb2.setValue(j += 4);
} else if (i == 101 || i == 53) {
jsb.setValue(j += 5);
jsb2.setValue(j += 5);
} else if (i == 102 || i == 54) {
jsb.setValue(j += 6);
jsb2.setValue(j += 6);
} else if (i == 103 || i == 55) {
jsb.setValue(j += 7);
jsb2.setValue(j += 7);
} else if (i == 104 || i == 56) {
jsb.setValue(j += 8);
jsb2.setValue(j += 8);
} else if (i == 105 || i == 57) {
jsb.setValue(j += 9);
jsb2.setValue(j += 9);
} else if (i == 116) {
this.jf();
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gds = ge.getScreenDevices();
if (gds.length > 1) {
this.jf.setLocation(this.getWidth(), 0);
this.jf.setExtendedState(JFrame.MAXIMIZED_BOTH);
System.out.println(this.getTitle());
}
this.setSize(this.jf.getWidth(), this.jf.getHeight() + 12);
} else if (i == 27) {
this.jf.dispose();
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.requestFocusInWindow();
}
}
JTextPane jtp2 = new JTextPane();
JScrollPane jsp2 = new JScrollPane(jtp2);
JFrame jf = new JFrame("大屏幕");
public void jf() {
//JFrame jf = new JFrame("大屏幕");
jf.setBounds(0, 0, 1000, 700);
jf.setExtendedState(JFrame.MAXIMIZED_BOTH);
jtp2.setEditable(false);
jtp2.setBackground(Color.BLACK);
jtp2.setFont(new FontUIResource("微软雅黑", Font.BOLD, 80));
jtp2.addMouseListener(this);
jf.add(jsp2);
jf.setVisible(true);
}
@Override
public void keyReleased(KeyEvent e) {
}
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
}
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
}
public void popupMenuCanceled(PopupMenuEvent e) {
}
}
Java屏幕同步了。有BUG还需要检查
最新推荐文章于 2025-10-19 23:45:07 发布
1101

被折叠的 条评论
为什么被折叠?



