|||
版本1
24.源码24,部件程序,对数据表某一个文本类字段检索查询
/**
* 程序文件名:dataQuery15.java
* 作者:程学先
* 完成时间:2013年11月17日
* 部件功能:对数据表某一个文本类字段检索查询。
* 被调用语句:datadataQuery15.means(parameter);
* 必须提供的参数:“表名”(parameter[4]),
* 如果欲打印,必须提供“打印格式文件名”(parameter[15])
* 打印格式文件是利用printFormat1.java生成的格式文件。
* 程序中设计了一个下拉组合框和一个文本框,组合框中列出供用户选择的字段名;
* 文本框供操作者输入检索字,之后按下“查询按钮”便可组织查询。
* 另外提供表格式显示、打印预览、打印、导出等按钮。
* 导出通过调用dataTransfer0.java实现,需要给出按钮号表()(借按钮号表2传入)。
* 检索字的格式:
* 检索字区分大、小写。
* 空格、|、-、( )、#、*均为特殊意义字符(注意均应为英文字符),
* 字符两边不要有空格。
* 空格表示要求两边内容均要包含在内。
* “|”表示要求两边内容至少有一个包含在内
* “-”表示后边内容不包含在内。
* “( )”表示其内部分为整体内容,全要满足。
* “#”表示在查找的二个词间可能有若干个任意的字符,
* 任意字符的个数不多于#号的个数。
* “*”表示在查找的二个词间可能有任意多个任意字符。
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.print.PrinterException;
import javax.swing.*;
import javax.swing.table.*;
import java.sql.*;
import java.io.*;
public class dataQuery15 extends JFrame {
static dataQuery15 frame = new dataQuery15();
static String 表名 = "";
static Choice choice;
static JTextField aTextField;
static JButton 浏览显示, 第一条, 下一条, 上一条, 最后一条, 打印预览, 打印, 导出, 退出;
static String s1 = "", s2 = "", s3 = "";
static ResultSet rs;
static int b = 0, c = 0;
static int 列数;
static int 字段序号 = 0;
static String[] 列名,列名0;
static String 打印格式文件名;
static String 字段号表;
static String 字段名表;
static String 按钮号表2 = "";
static String[][] 关系表 = { { " > ", "大于" }, { " < ", "小于" },
{ " = ", "等于" }, { " >= ", "大于等于" }, { " <= ", "小于等于" },
{ "<>", "不等于" }, { " like ", "包含" }, { " not like ", "不包含" } };
static String[] 列数据类型;
static int[] 列数据宽度;
static int 记录条数, 记录条数1;
static String[][] 表格数据;
static Connection con; // 连接数据库
static ResultSetMetaData rsmd3;
static Statement sta3;
static int 窗口宽 = 800, 窗口高 = 700;
static JTextArea 文本域;
static String[] 按钮集 = null;
static String 要求按钮号表;
static int 按钮数 = 0, 按钮宽 = 0;
public static void means(String[] parameter) {
frame = new dataQuery15();
表名 = "";
s1 = "";
s2 = "";
s3 = "";
b = 0;
c = 0;
字段序号 = 0;
按钮号表2 = "";
窗口宽 = 800;
窗口高 = 700;
关系表[0][0] = " > ";
关系表[0][1] = "大于";
关系表[1][0] = " < ";
关系表[1][1] = "小于";
关系表[2][0] = " = ";
关系表[2][1] = "等于";
关系表[3][0] = " >= ";
关系表[3][1] = "大于等于";
关系表[4][0] = " <= ";
关系表[4][1] = "小于等于";
关系表[5][0] = " <> ";
关系表[5][1] = "不等于";
关系表[6][0] = " like ";
关系表[6][1] = "包含";
关系表[7][0] = " not like ";
关系表[7][1] = "不包含";
String[] 按钮集01 = { "浏览显示", "第一条", "下一条", "上一条", "最后一条", "打印预览", "打印",
"导出", "退出" };
按钮集 = new String[按钮集01.length];
按钮数 = 0;
for (int i0 = 0; i0 < 按钮集01.length; i0++)
按钮集[i0] = 按钮集01[i0];
if (parameter[11].length() > 0) {
要求按钮号表 = parameter[11];// 需要显示的按钮的顺序号
// 将中文分号、冒号、句号、英文分号统一为英文分号
要求按钮号表 = 要求按钮号表.replaceAll(";", ";");
要求按钮号表 = 要求按钮号表.replaceAll("。", ";");
要求按钮号表 = 要求按钮号表.replaceAll(":", ";");
要求按钮号表 = 要求按钮号表.replaceAll(":", ";");
if (要求按钮号表.indexOf(";") > 0) { // 如果有按钮更名要求
String s601[] = 要求按钮号表.split(",");
要求按钮号表 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (s601[i01].indexOf(";") > 0) {
String s602[] = s601[i01].split(";");
按钮集[Integer.parseInt((s602[0]))] = s602[1];
要求按钮号表 = 要求按钮号表 + "," + s602[0];// 只留号,去更名
按钮数++;
} else {
要求按钮号表 = 要求按钮号表 + "," + s601[i01];// 只留号,原无更名
按钮数++;
}
}
} // 如果没有按钮更名要求,要求按钮号长度又大于0,保持原有摸样
else {
String s601[] = 要求按钮号表.split(",");
要求按钮号表 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (i01 == 0)
要求按钮号表 = s601[i01];
else
要求按钮号表 = 要求按钮号表 + "," + s601[i01];
按钮数++;
}
}
} else {
要求按钮号表 = ""; // 没输入要求按钮号,定全部按钮号
for (int i1 = 0; i1 < 按钮集.length; i1++) {
if (i1 == 0)
要求按钮号表 = 要求按钮号表 + i1;
else
要求按钮号表 = 要求按钮号表 + "," + i1;
按钮数++;
}
}
要求按钮号表 = "," + 要求按钮号表 + ",";
窗口宽 = main1.窗口宽;
窗口高 = main1.窗口高;
int m1, m2;
try {
if (parameter[17].length() == 0) {
m1 = 0;
m2 = 0;
} else {
m1 = Integer.parseInt(parameter[17]);// 宽度参数
m2 = Integer.parseInt(parameter[18]);
}
if (m1 > 0) {
if (m2 < 80) {
m1 = m1 * 10;
m2 = m2 * 10;
}
窗口宽 = m1;
窗口高 = m2;
}
} catch (Exception e2) {
}
表名 = parameter[4]; // 数据表名
打印格式文件名 = parameter[15];
字段号表 = parameter[8];
字段名表 = parameter[19];
if (字段名表.lastIndexOf(",") == 字段名表.length() - 1)
字段名表 = 字段名表.substring(0, 字段名表.length() - 1);
按钮号表2 = parameter[12];
列名 = 字段名表.split(",");
String[] l3 = 字段名表.split(",");
列数 = l3.length;
String[] l1;
if (字段号表.length() > 0) {
l1 = 字段号表.split(",");
int[] l2 = new int[l1.length];
for (int i = 0; i < l1.length; i++) {
l2[i] = Integer.valueOf(l1[i]);
}
列数 = l1.length;
列名 = new String[列数];
for (int i = 0; i < 列数; i++) {
列名[i] = l3[l2[i]];
}
}
s1 = "";
for (int i = 0; i < 列数; i++) {
s1 = s1 + 列名[i] + ",";
}
s1 = s1.substring(0, s1.length() - 1);
try {
con = main1.getConn();
sta3 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
s1 = "select " + s1 + " from " + 表名;
ResultSet rs = sta3.executeQuery(s1);
rsmd3 = rs.getMetaData();
列数据类型 = new String[列数]; // 定义列字段类型数组
列数据宽度 = new int[列数]; // 定义列数据宽度
for (int i = 0; i < 列数; i++) {
列数据类型[i] = rsmd3.getColumnTypeName(i + 1);
列数据宽度[i] = rsmd3.getColumnDisplaySize(i + 1);
if (列数据宽度[i] < 列名[i].length())
列数据宽度[i] = 列名[i].length();
if (列数据宽度[i] > 50)
列数据宽度[i] = 50;
b++;
}
int 记录条数 = 0; // 记录条数
rs.last();
记录条数 = rs.getRow();
表格数据 = new String[记录条数][列数];
rs.absolute(1);
c = 0; // 行号
b = 0; // 列号
while (c < 记录条数) {
rs.absolute(c + 1);
while (b < 列数) {
表格数据[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
rs.close(); // 关闭查询结果集
sta3.close(); // 关闭连接
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "读取数据出错!");
}
frame.setTitle("查询部件程序 作者:程学先");
frame.setBounds(10, 10, 窗口宽 - 10, 窗口高 - 10);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().setLayout(null);
final JPanel panel = new JPanel(false);
panel.setLayout(null);
panel.setBounds(20, 20, 窗口宽 - 50, 窗口高 - 20);
JLabel label = new JLabel("请选择字段名:");
label.setBounds(20, 30, 100, 20);
panel.add(label);
choice = new Choice();
for (int i = 0; i < 列数; i++) {
if ((main1.文字数据类型.lastIndexOf(列数据类型[i])) >= 0)
choice.add(列名[i]);
}
choice.setBounds(120, 30, 100, 60);
panel.add(choice);
aTextField = new JTextField("", 10);
aTextField.setBounds(220, 30, 330, 20);
panel.add(aTextField);
final JButton selectButton = new JButton("文本检索");
selectButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
con = main1.getConn();
sta3 = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String 检索内容0 = aTextField.getText();
int n0 = 检索内容0.length();
检索内容0 = 检索内容0 + " ";
int i = 0, j = 0, k1 = 0, k2 = 0;
s1 = "";
s2 = "";
String[] s7 = choice.getSelectedItem().trim().split(",");
s3 = s7[0];
String[] s6 = 字段名表.split(",");
for (int i1 = 0; i1 < s6.length; i1++)
if (s3.trim().equals(s6[i1].trim()))
字段序号 = i1;
String s4 = "", s5 = "";
for (i = 0; i < n0; i++) {
if (检索内容0.substring(i, i + 1).equals("(")) {
if (k1 < 2) {
s1 = s1 + "(";
} else if (k1 == 3) {
s1 = s1 + " and " + "(";
} else if (k1 == 4) {
s1 = s1 + " or " + "(";
} else if (k1 == 5) {
s1 = s1 + " and not " + "(";
}
s2 = "";
k1 = 1;
} else if (检索内容0.substring(i, i + 1).equals(")")) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%')";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%')"; // not
}
k1 = 2;
s2 = "";
} else if (检索内容0.substring(i, i + 1).equals("#"))
s2 = s2 + "-";
else if (检索内容0.substring(i, i + 1).equals("*"))
s2 = s2 + "%";
else if ((检索内容0.substring(i, i + 1).equals(" "))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";// not
}
k1 = 3;
s2 = "";
} else if ((检索内容0.substring(i, i + 1).equals("|"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like "
+ "'%" + s2 + "%'";// not
}
k1 = 4;
s2 = "";
} else if ((检索内容0.substring(i, i + 1).equals("-"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 5;
s2 = "";
} else {
s2 = s2 + 检索内容0.substring(i, i + 1);
}
}
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%" + s2
+ "%'";// not
}
s1 = "select " + 字段名表 + " from " + 表名 + " where " + s1;
ResultSet rs = sta3.executeQuery(s1);
ResultSetMetaData rsmdt4 = rs.getMetaData();
列数 = rsmdt4.getColumnCount();
记录条数 = 0;
rs.last();
记录条数 = rs.getRow();
if (记录条数 < 1) {
JOptionPane.showMessageDialog(null, "未查到满足条件的记录!");
return;
}
表格数据 = new String[记录条数][列数];
rs.absolute(1);
c = 0; // 行号
b = 0; // 列号
记录条数1 = 0;
while (c < 记录条数) {
rs.absolute(c + 1);
while (b < 列数) {
表格数据[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
文本域.setText(表格数据[记录条数1][字段序号]);
rs.close(); // 关闭查询结果集
sta3.close(); // 关闭连接
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "查询数据出错!" + s1);
}
}
});
selectButton.setBounds(550, 30, 90, 20);
panel.add(selectButton);
JButton 格式提示 = new JButton("格式提示");
格式提示.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame frame1 = new JFrame();
frame1.setTitle("查询部件程序");
frame1.setBounds(350, 140, 440, 290);
frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame1.getContentPane().setLayout(null);
String s0 = "";
char x1 = 10;
s0 = "检索字的格式:检索字区分大、小写。" + x1
+ "空格、&、|、-、( )、$、#、*、\\ 均为特殊意义字符" + x1
+ "(注意均应为英文字符),字符两边不要有空格。" + x1
+ "空格或& 表示要求两边内容均要包含在内。" + x1 + "“|”表示要求两边内容至少有一个包含在内"
+ x1 + "“-”表示后边内容不包含在内。" + x1
+ "“( )”表示其内部分为整体内容,全要满足。" + x1
+ "“$”表示其后的词在标题之首,要放在全文检索词最前面。" + x1
+ "“#”表示在查找的二个词间可能有若干个任意的字符," + x1 + "任意字符的个数不多于#号的个数。"
+ x1 + "“*”表示在查找的二个词间可能有任意多个任意字符。" + x1
+ "“\\”后边应当是上述字符中任意一个," + x1
+ "表示在此处该字符不具有上述特殊意义,只是检索内容中的一个字。";
JTextArea 文本域1;
文本域1 = new JTextArea(s0, 10, 10);// 建立文本域
JScrollPane 滚动条1 = new JScrollPane(文本域1);
滚动条1.setBounds(10, 10, 415, 235);
frame1.add(滚动条1);// 安装滚动条
frame1.setVisible(true);
}
});
格式提示.setBounds(640, 30, 90, 20);
panel.add(格式提示);
文本域 = new JTextArea("", 10, 10);// 建立文本域
JScrollPane 滚动条 = new JScrollPane(文本域);
滚动条.setBounds(20, 70, 700, 500);
panel.add(滚动条);// 安装滚动条
按钮宽 = (窗口宽 - 60) / 按钮数;
int 左边距 = 30;
浏览显示 = new JButton(按钮集[0]);
浏览显示.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tableTenance.tableModel(800, 600, 列名, 列数据宽度, 表格数据, 列数据类型);
}
});
浏览显示.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",0,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(浏览显示);
}
第一条 = new JButton(按钮集[1]);
第一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
记录条数1 = 0;
文本域.setText(表格数据[记录条数1][字段序号]);
}
});
第一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",1,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(第一条);
}
下一条 = new JButton(按钮集[2]);
下一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (记录条数1 < 记录条数 - 1) {
记录条数1++;
文本域.setText(表格数据[记录条数1][字段序号]);
}
}
});
下一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",2,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(下一条);
}
上一条 = new JButton(按钮集[3]);
上一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (记录条数1 > 0) {
记录条数1--;
文本域.setText(表格数据[记录条数1][字段序号]);
}
}
});
上一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",3,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(上一条);
}
最后一条 = new JButton(按钮集[4]);
最后一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
记录条数1 = 记录条数 - 1;
文本域.setText(表格数据[记录条数1][字段序号]);
}
});
最后一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",4,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(最后一条);
}
打印预览 = new JButton(按钮集[5]);
打印预览.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (打印格式文件名.trim().length() > 0)
dataPreview1.printView1(表格数据, 打印格式文件名);
else
dataPreview0.printView1(列名, 表格数据, 列数据宽度, 表名 + "表格预览");
}
});
打印预览.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",5,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(打印预览);
}
打印 = new JButton(按钮集[6]);
打印.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (打印格式文件名.trim().length() > 0)
dataPrint1.print1(表格数据, 打印格式文件名);
else{
final JTable table = null;
final DefaultTableModel model;
model = new DefaultTableModel(表格数据, 列名); // 建立表格模型
for (int i = 0; i < 列名.length; i++) {
TableColumn tc = table.getColumn(列名[i]);// 返回表格的列对象
JTableHeader header = table.getTableHeader();
if (列数据宽度[i] < 列名[i].length())
列数据宽度[i] = 列名[i].length();
tc.setPreferredWidth(列数据宽度[i] * 9);
tc.setMaxWidth(列数据宽度[i] * 9);
}
try {
table.print();
} catch (PrinterException e1) {
e1.printStackTrace();
}
}
}
});
打印.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",6,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(打印);
}
导出 = new JButton(按钮集[7]);
导出.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dataTransfer0.Trans(列名, 列数据类型, 列数据宽度, 按钮号表2, 表格数据, 表名);
}
});
导出.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",7,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(导出);
}
退出 = new JButton(按钮集[8]);
退出.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel.setVisible(false);
frame.setVisible(false);
frame.dispose();
}
});
退出.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",8,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(退出);
}
frame.getContentPane().add(panel, null); // 安装面板
frame.setVisible(true); // 安装窗口
frame.getContentPane().add(panel, BorderLayout.SOUTH);
}
}
25.源码25,部件程序,对多数据表中某一个文本类字段检索查询
/**
* 程序文件名:dataQuery16.java
* 作者:程学先
* 完成时间:2013年11月17日
* 部件功能:对多数据表中某一个文本类字段检索查询,可以应用字典表改变标签内容。
* 被调用语句:datadataQuery16.means(parameter);
* 要求提供的参数:“表名”(parameter[4])。
* 如果欲打印,必须提供“打印格式文件名”(parameter[15])
* “字段号表”(parameter[8]),按钮号表2(parameter[12])。
* 打印格式文件是利用printFormat1.java生成的格式文件。
* 程序中设计了一个下拉组合框和一个文本框,组合框中列出供用户选择的字段名;
* 文本框供操作者输入检索字,之后按下“查询按钮”便可组织查询。
* 另外提供表格式显示、打印预览、打印、导出等按钮。
* 导出通过调用dataTransfer0.java实现,需要给出按钮号表()(借按钮号表2传入)。
* 检索字的格式:
* 检索字区分大、小写。
* 空格、|、-、( )、#、*均为特殊意义字符(注意均应为英文字符),
* 字符两边不要有空格。
* 空格表示要求两边内容均要包含在内。
* “|”表示要求两边内容至少有一个包含在内
* “-”表示后边内容不包含在内。
* “( )”表示其内部分为整体内容,全要满足。
* “#”表示在查找的二个词间可能有若干个任意的字符,
* 任意字符的个数不多于#号的个数。
* “*”表示在查找的二个词间可能有任意多个任意字符。
* 只是检索内容中的一个字。
* 为辅助学习SQL语句,设计了一个文本域用来存放生成的SQL语句,操作者可以手工修改该语句,
* 之后执行,观察SQL语句设计正确性。注意写语句时要用数据库中定义的字段名,不能用字典表
* 处理之后的名字。
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.print.PrinterException;
import javax.swing.*;
import javax.swing.table.*;
import java.sql.*;
import java.io.*;
public class dataQuery16 extends JFrame {
static dataQuery16 frame = new dataQuery16();
static String 表名 = "";
static String 字典表名;
static String 表名表;
static Choice choice;
static JTextField aTextField;
static JButton 浏览显示, 第一条, 下一条, 上一条, 最后一条, 打印预览, 打印, 导出, 退出;
static String s1 = "", s2 = "", s3 = "", s4 = "";
static ResultSet rs;
static int b = 0, c = 0;
static int 列数;
static int 字段序号 = 0;
static String[][] 列名, 列名0;
static String 打印格式文件名;
static String 字段号表;
static String 字段名表;
static String 连接条件;
static String 字段名字串;
static String[] 字段名串;
static String 按钮号表2 = "";
static String[][] 关系表 = { { " > ", "大于" }, { " < ", "小于" },
{ " = ", "等于" }, { " >= ", "大于等于" }, { " <= ", "小于等于" },
{ "<>", "不等于" }, { " like ", "包含" }, { " not like ", "不包含" } };
static String[] 列数据类型;
static int[] 列数据宽度;
static int 记录条数, 记录条数1;
static String[][] 表格数据;
static Connection con;
static ResultSetMetaData rsmd3;
static Statement sta3;
static int 窗口宽 = 800, 窗口高 = 700;
static JTextArea 文本域, 文本域2;
static String[] 按钮集 = null;
static String 要求按钮号表;
static int 按钮数 = 0, 按钮宽 = 0;
public static void means(String[] parameter) {
frame = new dataQuery16();
表名 = "";
s1 = "";
s2 = "";
s3 = "";
b = 0;
c = 0;
字段序号 = 0;
关系表[0][0] = " > ";
关系表[0][1] = "大于";
关系表[1][0] = " < ";
关系表[1][1] = "小于";
关系表[2][0] = " = ";
关系表[2][1] = "等于";
关系表[3][0] = " >= ";
关系表[3][1] = "大于等于";
关系表[4][0] = " <= ";
关系表[4][1] = "小于等于";
关系表[5][0] = " <> ";
关系表[5][1] = "不等于";
关系表[6][0] = " like ";
关系表[6][1] = "包含";
关系表[7][0] = " not like ";
关系表[7][1] = "不包含";
窗口宽 = 800;
窗口高 = 700;
String[] 按钮集01 = { "浏览显示", "第一条", "下一条", "上一条", "最后一条", "打印预览", "打印",
"导出", "退出" };
按钮集 = new String[按钮集01.length];
按钮数 = 0;
for (int i0 = 0; i0 < 按钮集01.length; i0++)
按钮集[i0] = 按钮集01[i0];
if (parameter[11].length() > 0) {
要求按钮号表 = parameter[11];// 需要显示的按钮的顺序号
// 将中文分号、冒号、句号、英文分号统一为英文分号
要求按钮号表 = 要求按钮号表.replaceAll(";", ";");
要求按钮号表 = 要求按钮号表.replaceAll("。", ";");
要求按钮号表 = 要求按钮号表.replaceAll(":", ";");
要求按钮号表 = 要求按钮号表.replaceAll(":", ";");
if (要求按钮号表.indexOf(";") > 0) { // 如果有按钮更名要求
String s601[] = 要求按钮号表.split(",");
要求按钮号表 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (s601[i01].indexOf(";") > 0) {
String s602[] = s601[i01].split(";");
按钮集[Integer.parseInt((s602[0]))] = s602[1];
要求按钮号表 = 要求按钮号表 + "," + s602[0];// 只留号,去更名
按钮数++;
} else {
要求按钮号表 = 要求按钮号表 + "," + s601[i01];// 只留号,原无更名
按钮数++;
}
}
} // 如果没有按钮更名要求,要求按钮号长度又大于0,保持原有摸样
else {
String s601[] = 要求按钮号表.split(",");
要求按钮号表 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (i01 == 0)
要求按钮号表 = s601[i01];
else
要求按钮号表 = 要求按钮号表 + "," + s601[i01];
按钮数++;
}
}
} else {
要求按钮号表 = ""; // 没输入要求按钮号,定全部按钮号
for (int i1 = 0; i1 < 按钮集.length; i1++) {
if (i1 == 0)
要求按钮号表 = 要求按钮号表 + i1;
else
要求按钮号表 = 要求按钮号表 + "," + i1;
按钮数++;
}
}
要求按钮号表 = "," + 要求按钮号表 + ",";
窗口宽 = main1.窗口宽;
窗口高 = main1.窗口高;
int m1, m2;
try {
if (parameter[17].length() == 0) {
m1 = 0;
m2 = 0;
} else {
m1 = Integer.parseInt(parameter[17]);// 宽度参数
m2 = Integer.parseInt(parameter[18]);
}
if (m1 > 0) {
if (m2 < 80) {
m1 = m1 * 10;
m2 = m2 * 10;
}
窗口宽 = m1;
窗口高 = m2;
}
} catch (Exception e2) {
}
表名 = parameter[4]; // 数据表名
打印格式文件名 = parameter[15];
连接条件 = parameter[20];
字段名字串 = parameter[19];
字段号表 = parameter[8];
字段名表 = parameter[19];
if (字段名表.lastIndexOf(",") == 字段名表.length() - 1)
字段名表 = 字段名表.substring(0, 字段名表.length() - 1);
String[] 列名2 = 字段名表.split(",");
按钮号表2 = parameter[12];
String[] sn = 字段号表.split(",");
if (字段号表.length() > 0) {
字段名表 = "";
for (int i = 0; i < sn.length; i++)
if (i == 0)
字段名表 = 列名2[Integer.parseInt(sn[i])];
else
字段名表 = 字段名表 + "," + 列名2[Integer.parseInt(sn[i])];
}
String[] 列名1 = 字段名表.split(",");
列名 = new String[2][列名1.length];
列名[0] = 字段名表.split(",");
列名[1] = 字段名表.split(",");
表名表 = parameter[0];
String[] l3 = 字段名表.split(",");
列数 = l3.length;
String[] l1;
字典表名 = "";
String s11 = 表名;
String[] s12;
if (表名.indexOf(",") > 0) {
s12 = 表名.split(",");
s11 = s12[0];
}
s4 = s11;
字典表名 = "";
String[] t1;
if (表名表.lastIndexOf(s11 + "字典表") > 0) {
t1 = 表名表.split(",");
for (int i = 0; i < t1.length; i++)
if (t1[i].lastIndexOf(s11 + "字典表") >= 0)
字典表名 = t1[i];
}
s1 = "";
for (int i = 0; i < 列数; i++) {
s1 = s1 + 列名[0][i] + ",";
}
s1 = s1.substring(0, s1.length() - 1);
int 列数0 = 0;
if (字典表名.length() > 0) {
try {
con = main1.getConn();
sta3 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
s2 = "select * from " + 字典表名;
rs = sta3.executeQuery(s2);
rs.last();
int kl = rs.getRow();
ResultSetMetaData rsmd = rs.getMetaData();
列数0 = rsmd.getColumnCount();
列名0 = new String[2][kl];
int numberOfColumns = rsmd.getColumnCount(); // 记录数
String s14 = "";
String s15 = "";
int b = 1;
while (rs.absolute(b)) {
b++;
s14 = rs.getString(1); // 字段名
s15 = rs.getString(2); // 标签名
列名0[0][b - 2] = s14;
列名0[1][b - 2] = s15;
for (int j = 0; j < 列名[0].length; j++) {
if ((列名[0][j].trim().equals(s14.trim()))
|| (列名[0][j].indexOf("." + s14) > 0)) {
列名[1][j] = s15;
break;
}
}
}
rs.close(); // 关闭查询结果集
con.close();
sta3.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "连接数据库出错!");
}
}
try {
con = main1.getConn();
sta3 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
if (连接条件.trim().length() > 0)
s1 = "select " + s1 + " from " + 表名 + " where " + 连接条件;
else
s1 = "select " + s1 + " from " + 表名;
ResultSet rs = sta3.executeQuery(s1);
rsmd3 = rs.getMetaData();
列数据类型 = new String[列数]; // 定义列字段类型数组
列数据宽度 = new int[列数]; // 定义列数据宽度
for (int i = 0; i < 列数; i++) {
列名[0][i] = rsmd3.getColumnName(i + 1); // 获取列名存到数组中
列名[1][i] = 列名[0][i];
if (列数0 > 0)
for (int j = 0; j < 列名0[0].length; j++) {
if ((列名0[0][j].trim().equals(列名[0][i]))
|| (列名0[0][j].indexOf("." + 列名[0][i]) > 0)) {
列名[1][i] = 列名0[1][j];
break;
}
}
列数据类型[i] = rsmd3.getColumnTypeName(i + 1);
列数据宽度[i] = rsmd3.getColumnDisplaySize(i + 1);
if (列数据宽度[i] < 列名[0][i].length())
列数据宽度[i] = 列名[0][i].length();
if (列数据宽度[i] < 列名[1][i].length())
列数据宽度[i] = 列名[1][i].length();
if (列数据宽度[i] > 50)
列数据宽度[i] = 50;
b++;
}
int 记录条数 = 0; // 记录条数
rs.last();
记录条数 = rs.getRow();
表格数据 = new String[记录条数][列数];
rs.absolute(1);
c = 0;
b = 0;
while (c < 记录条数) {
rs.absolute(c + 1);
while (b < 列数) {
表格数据[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
rs.close();
sta3.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "读取数据出错!");
}
frame.setTitle("查询部件程序 作者:程学先"); // 窗口标题
frame.setBounds(10, 10, 窗口宽 - 10, 窗口高 - 10);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().setLayout(null);
final JPanel panel = new JPanel(false);
panel.setLayout(null);
panel.setBounds(20, 20, 窗口宽 - 50, 窗口高 - 20);
JLabel label = new JLabel("请选择字段名:");
label.setBounds(20, 30, 100, 20);
panel.add(label);
choice = new Choice();
for (int i = 0; i < 列数; i++) {
if ((main1.文字数据类型.lastIndexOf(列数据类型[i])) >= 0)
choice.add(列名[1][i]);
}
choice.setBounds(120, 30, 100, 60);
panel.add(choice);
aTextField = new JTextField("", 10);
aTextField.setBounds(220, 30, 330, 20);
panel.add(aTextField);
final JButton selectButton = new JButton("文本检索");
selectButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
con = main1.getConn();// 连接数据库
sta3 = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String 检索内容0 = aTextField.getText();
int n0 = 检索内容0.length();
检索内容0 = 检索内容0 + " ";
int i = 0, j = 0, k1 = 0, k2 = 0;
s1 = "";
s2 = "";
String[] s7 = choice.getSelectedItem().trim().split(",");
s3 = s7[0]; // 字段名
for (int i2 = 0; i2 < 列名[0].length; i2++) {
if (列名[1][i2].equals(s3))
s3 = 列名[0][i2];
}
if (字段名表.indexOf(s4 + "." + s3) >= 0)
s3 = s4 + "." + s3;
String[] s6 = 字段名表.split(",");
for (int i1 = 0; i1 < s6.length; i1++)
if (s3.trim().equals(s6[i1].trim()))
字段序号 = i1;
for (i = 0; i < n0; i++) {
if (检索内容0.substring(i, i + 1).equals("(")) {
if (k1 < 2) {
s1 = s1 + "(";
} else if (k1 == 3) {
s1 = s1 + " and " + "(";
} else if (k1 == 4) {
s1 = s1 + " or " + "(";
} else if (k1 == 5) {
s1 = s1 + " and not " + "(";
}
s2 = "";
k1 = 1;
} else if (检索内容0.substring(i, i + 1).equals(")")) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%')";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%')";
}
k1 = 2;
s2 = "";
} else if (检索内容0.substring(i, i + 1).equals("#"))
s2 = s2 + "-";
else if (检索内容0.substring(i, i + 1).equals("*"))
s2 = s2 + "%";
else if ((检索内容0.substring(i, i + 1).equals(" "))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 3;
s2 = "";
} else if ((检索内容0.substring(i, i + 1).equals("|"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 4;
s2 = "";
} else if ((检索内容0.substring(i, i + 1).equals("-"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 5;
s2 = "";
} else {
s2 = s2 + 检索内容0.substring(i, i + 1);
}
}
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%" + s2
+ "%'";
}
if (连接条件.trim().length() > 0)
s1 = "select " + 字段名表 + " from " + 表名 + " where "
+ 连接条件 + " and " + s1;
else
s1 = "select " + 字段名表 + " from " + 表名 + " where " + s1;
文本域2.setText(s1);
ResultSet rs = sta3.executeQuery(s1);
记录条数 = 0; // 记录条数
rs.last();
记录条数 = rs.getRow();
if (记录条数 < 1) {
JOptionPane.showMessageDialog(null, "未查到满足条件的记录!");
return;
}
表格数据 = new String[记录条数][s6.length];
rs.absolute(1);
c = 0; // 行号
b = 0; // 列号
记录条数1 = 0;
while (c < 记录条数) {
rs.absolute(c + 1);
while (b < s6.length) {
表格数据[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
文本域.setText(表格数据[记录条数1][字段序号]);
rs.close(); // 关闭查询结果集
sta3.close(); // 关闭连接
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "查询数据出错!" + s1);
}
}
});
selectButton.setBounds(550, 30, 90, 20);
panel.add(selectButton);
JButton 格式提示 = new JButton("格式提示");
格式提示.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame frame1 = new JFrame();
frame1.setTitle("查询部件程序");
frame1.setBounds(350, 140, 440, 290);
frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame1.getContentPane().setLayout(null);
String s0 = "";
char x1 = 10;
s0 = "检索字的格式:检索字区分大、小写。" + x1
+ "空格、&、|、-、( )、$、#、*、\\ 均为特殊意义字符" + x1
+ "(注意均应为英文字符),字符两边不要有空格。" + x1
+ "空格或& 表示要求两边内容均要包含在内。" + x1 + "“|”表示要求两边内容至少有一个包含在内"
+ x1 + "“-”表示后边内容不包含在内。" + x1
+ "“( )”表示其内部分为整体内容,全要满足。" + x1
+ "“$”表示其后的词在标题之首,要放在全文检索词最前面。" + x1
+ "“#”表示在查找的二个词间可能有若干个任意的字符," + x1 + "任意字符的个数不多于#号的个数。"
+ x1 + "“*”表示在查找的二个词间可能有任意多个任意字符。" + x1
+ "“\\”后边应当是上述字符中任意一个," + x1
+ "表示在此处该字符不具有上述特殊意义,只是检索内容中的一个字。";
JTextArea 文本域1;
文本域1 = new JTextArea(s0, 10, 10);// 建立文本域
JScrollPane 滚动条1 = new JScrollPane(文本域1);
滚动条1.setBounds(10, 10, 415, 235);
frame1.add(滚动条1);// 安装滚动条
frame1.setVisible(true);
}
});
格式提示.setBounds(640, 30, 90, 20);
panel.add(格式提示);
文本域 = new JTextArea("", 10, 10);// 建立文本域
JScrollPane 滚动条 = new JScrollPane(文本域);
滚动条.setBounds(20, 120, 700, 450);
panel.add(滚动条);// 安装滚动条
JLabel label2 = new JLabel("SQL查询语句");
label2.setBounds(20, 60, 100, 20);
panel.add(label2);
文本域2 = new JTextArea("", 10, 10);
文本域2.setLineWrap(true);
JScrollPane 滚动条2 = new JScrollPane(文本域2);
滚动条2.setBounds(120, 60, 490, 50);
panel.add(滚动条2);// 安装滚动条
JButton 执行 = new JButton("执行SQL语句");
执行.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
con = main1.getConn();
sta3 = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
s1 = 文本域2.getText();
ResultSet rs = sta3.executeQuery(s1);
ResultSetMetaData rsmdt4 = rs.getMetaData();
列数 = rsmdt4.getColumnCount();
记录条数 = 0;
rs.last();
记录条数 = rs.getRow();
if (记录条数 < 1) {
JOptionPane.showMessageDialog(null, "未查到满足条件的记录!");
return;
}
String[] s6 = 字段名表.split(",");
表格数据 = new String[记录条数][列数];
rs.absolute(1);
c = 0; // 行号
b = 0; // 列号
记录条数1 = 0;
while (c < 记录条数) {
rs.absolute(c + 1);
while (b < 列数) {
表格数据[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
文本域.setText(表格数据[记录条数1][字段序号]);
rs.close(); // 关闭查询结果集
sta3.close(); // 关闭连接
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "查询数据出错!" + s1);
}
}
});
执行.setBounds(615, 60, 120, 20);
panel.add(执行);
按钮宽 = (窗口宽 - 60) / 按钮数;
int 左边距 = 30;
浏览显示 = new JButton(按钮集01[0]);
浏览显示.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tableTenance.tableModel(800, 600, 列名[1], 列数据宽度, 表格数据, 列数据类型);
}
});
浏览显示.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",0,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(浏览显示);
}
第一条 = new JButton(按钮集[1]);
第一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
记录条数1 = 0;
文本域.setText(表格数据[记录条数1][字段序号]);
}
});
第一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",1,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(第一条);
}
下一条 = new JButton(按钮集[2]);
下一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (记录条数1 < 记录条数 - 1) {
记录条数1++;
文本域.setText(表格数据[记录条数1][字段序号]);
}
}
});
下一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",2,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(下一条);
}
上一条 = new JButton(按钮集[3]);
上一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (记录条数1 > 0) {
记录条数1--;
文本域.setText(表格数据[记录条数1][字段序号]);
}
}
});
上一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",3,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(上一条);
}
最后一条 = new JButton(按钮集[4]);
最后一条.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
记录条数1 = 记录条数 - 1;
文本域.setText(表格数据[记录条数1][字段序号]);
}
});
最后一条.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",4,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(最后一条);
}
打印预览 = new JButton(按钮集[5]);
打印预览.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (打印格式文件名.trim().length() > 0)
dataPreview1.printView1(表格数据, 打印格式文件名);
else
dataPreview0.printView1(列名[1], 表格数据, 列数据宽度, 表名 + "表格预览");
}
});
打印预览.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",5,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(打印预览);
}
打印 = new JButton(按钮集[6]);
打印.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (打印格式文件名.trim().length() > 0)
dataPrint1.print1(表格数据, 打印格式文件名);
else{
final JTable table = null;
final DefaultTableModel model;
model = new DefaultTableModel(表格数据, 列名[1]); // 建立表格模型
for (int i = 0; i < 列名[1].length; i++) {
TableColumn tc = table.getColumn(列名[1][i]);// 返回表格的列对象
JTableHeader header = table.getTableHeader();
if (列数据宽度[i] < 列名[1][i].length())
列数据宽度[i] = 列名[1][i].length();
tc.setPreferredWidth(列数据宽度[i] * 9);
tc.setMaxWidth(列数据宽度[i] * 9);
}
try {
table.print();
} catch (PrinterException e1) {
e1.printStackTrace();
}
}
}
});
打印.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",6,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(打印);
}
导出 = new JButton(按钮集[7]);
导出.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dataTransfer0.Trans(列名[1], 列数据类型, 列数据宽度, 按钮号表2, 表格数据, 表名);
}
});
导出.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",7,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(导出);
}
退出 = new JButton(按钮集[8]);
退出.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel.setVisible(false);
frame.setVisible(false);
frame.dispose();
}
});
退出.setBounds(左边距, 窗口高 - 100, 按钮宽, 20);
if (要求按钮号表.indexOf(",8,") >= 0) {
左边距 = 左边距 + 按钮宽;
panel.add(退出);
}
frame.getContentPane().add(panel, null); // 安装面板
frame.setVisible(true); // 安装窗口
frame.getContentPane().add(panel, BorderLayout.SOUTH);
}
}
26.源码26,公共程序,导出数据到txt文件、Excel文件、Word文件、PDF文件与xml文件公共程序
/**
* 程序文件名:dataTransfer0.java
* 作者:程学先:
* 功能:导出数据到txt文件、Excel文件、Word文件、PDF文件与xml文件公共程序。
* 导出到word与excel有覆盖式与添加式两种。
* 完成日期:2013年1月22日
* 被调用语句:dataTransfer0.Trans(String [] 列名1,String [] 表列数据类型1,
* int [] 表列数据宽度1,String 要求按钮号表1,String [][] 表格数据1,String 表名);
* 本部件预设的按钮控件共10个,序号及按钮名:1导出到word文件、2添加式导出到word文件、
* 3导出到excel文件、4添加式导出到excel文件、5标准格式导出到txt文件、6紧凑格式导出到txt、
* 7自定义格式导出到txt文件、8导出到xml文件、9导出到PDF文件、10退出。可设置“要求按钮号”选择。
* 进入程序后要求首先输入导出文件名。
* 自定义格式导出到txt文件将提问分隔符,每条记录一行,各类型数据以自然形式表示,
* 字符串类型数据也不加双引号,字段间加所输入的分隔符分隔。
* 分隔符可以由多个字符组成,例如:####。适应text等大数据的传送。
* 导出到txt文件、Excel文件、Word文件、PDF文件要求下载:
* poi-3.8-20120326.jar、poi-scratchpad-3.9-20121203.jar、jacob.jar、
* iText-5.0.5.jar并构建好路径。
*
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.io.File.*;
import javax.swing.*;
import javax.swing.table.*;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.ss.usermodel.Sheet;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import java.sql.*;
import java.util.ArrayList;
import java.util.Vector;
public class dataTransfer0 extends JFrame {
private static JTable 表格1; // 创建表格
static Connection con;
static String 表名; // 数据表名
static int 窗口宽 = 1200, 窗口高 = 700;// 窗口宽、窗口高
static int 表格列数; // 数据表列数
static String[] 表格列名; // 表格列名
static String[][] 表格数据;
static String[] 表列数据类型; // 存放表格各列数据类型的数组
static int[] 表列数据宽度, 表列小数位数; // 存放当前记录各字段数据宽度的数组
static int 记录条数, 记录条数1 = 0; // 记录条数
static String[] 按钮集 = null;
static String 要求按钮号表; // 需要显示的按钮的顺序号
static int 按钮左边距 = 0, 按钮宽 = 0;
static DefaultTableModel 表格模型;
static JTextField fa1;
static String 导出表名 = "", 导出文件名 = "";
static String excel导出文件名 = "";
static String word导出文件名 = "";
static String xml导出文件名 = "";
static String pdf导出文件名 = "";
static String s1 = "", s2 = "", s3 = "";
static char x1 = 10, x2 = 13, x3 = '"', x4 = ',';
static String[] f01;
static String[] 当前字段值;
static PreparedStatement pstmt;
static Statement sta;
static void Trans(String[] 列名1, String[] 表列数据类型1, int[] 表列数据宽度1,
String 要求按钮号表1, String[][] 表格数据1, String 表名1) {
窗口宽 = 1200;
窗口高 = 700;// 窗口宽、窗口高
记录条数1 = 0; // 记录条数
按钮左边距 = 0;
按钮宽 = 0;
导出表名 = "";
导出文件名 = "";
excel导出文件名 = "";
word导出文件名 = "";
xml导出文件名 = "";
s1 = "";
s2 = "";
s3 = "";
x1 = 10;
x2 = 13;
x3 = '"';
x4 = ',';
File file = new File(".\\com\\iText-5.0.5.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
file = new File(".\\com\\jacob.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
file = new File(".\\com\\poi-3.8-20120326.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
file = new File(".\\com\\PDFBox-0.7.3.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
final dataTransfer0 frame = new dataTransfer0(); // 创建窗体
frame.setTitle("数据导出到文件二级部件 作者:程学先"); // 设置窗体标题
frame.setBounds(10, 10, 窗口宽, 窗口高); // 设置窗体的位置和大小
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // 设置窗体的默认关闭模式
表名 = 表名1;
表格列数 = 列名1.length; // 数据表列数
表格列名 = new String[表格列数]; // 定义列名数组
for (int i = 0; i < 表格列数; i++)
表格列名[i] = 列名1[i];
表列数据类型 = new String[表格列数]; // 定义列字段类型数组
for (int i = 0; i < 表格列数; i++)
表列数据类型[i] = 表列数据类型1[i];
表列数据宽度 = new int[表格列数]; // 定义列数据宽度
for (int i = 0; i < 表格列数; i++)
表列数据宽度[i] = 表列数据宽度1[i];
表格数据 = new String[表格数据1.length][表格列数];
for (int i = 0; i < 表格数据1.length; i++)
for (int j = 0; j < 表格列数; j++)
表格数据[i][j] = 表格数据1[i][j];
要求按钮号表 = 要求按钮号表1; // 需要显示的按钮的顺序号
记录条数 = 表格数据.length;
要求按钮号表 = "," + 要求按钮号表1 + ",";
final JScrollPane scrollPane = new JScrollPane(); // 创建滚动面板
scrollPane.setBounds(0, 0, 窗口宽 - 100, 窗口高 - 180); // 定义滚动面板大小位置
frame.setLayout(null);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER); // 在窗体中央添加滚动面板
表格模型 = new DefaultTableModel(表格数据, 表格列名); // 创建表格模型
表格1 = new JTable(表格模型);// 创建指定表格模型的表格
表格1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
表格1.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
for (int i = 0; i < 表格列数; i++) { // 设置表格每列宽度
TableColumn tc = 表格1.getColumn(表格列名[i]);// 返回表格的列对象
JTableHeader header = 表格1.getTableHeader();
tc.setPreferredWidth(表列数据宽度[i] * 14);
tc.setMaxWidth(表列数据宽度[i] * 14);
tc.sizeWidthToFit();
}
scrollPane.setViewportView(表格1);
表格1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
}
});
JLabel fl1 = new JLabel("文件名");
fl1.setBounds(100, 窗口高 - 160, 50, 20);
frame.add(fl1);
fa1 = new JTextField("", 20);
fa1.setBounds(150, 窗口高 - 160, 200, 20);
frame.add(fa1); // 加入文本框
fa1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (fa1.getText().length() < 1) {
final JFileChooser fc = new JFileChooser(".\\");
fc.showOpenDialog(null);
if (fc.getSelectedFile() != null)
fa1.setText(fc.getSelectedFile().toString());
导出文件名 = fc.getSelectedFile().toString();
excel导出文件名 = 导出文件名;
if (excel导出文件名.lastIndexOf(".xls") < 0)
if (excel导出文件名.lastIndexOf(".") < 0)
excel导出文件名 = excel导出文件名 + ".xls";
else
excel导出文件名 = excel导出文件名.substring(0,
excel导出文件名.lastIndexOf("."))
+ ".xls";
word导出文件名 = 导出文件名;
if (word导出文件名.lastIndexOf(".doc") < 0)
if (word导出文件名.lastIndexOf(".") < 0)
word导出文件名 = word导出文件名 + ".doc";
else
word导出文件名 = word导出文件名.substring(0,
word导出文件名.lastIndexOf("."))
+ ".doc";
xml导出文件名 = 导出文件名;
if (xml导出文件名.lastIndexOf(".xml") < 0)
if (xml导出文件名.lastIndexOf(".") < 0)
xml导出文件名 = xml导出文件名 + ".xml";
else
xml导出文件名 = xml导出文件名.substring(0,
xml导出文件名.lastIndexOf("."))
+ ".xml";
pdf导出文件名 = 导出文件名;
if (pdf导出文件名.lastIndexOf(".pdf") < 0)
if (pdf导出文件名.lastIndexOf(".") < 0)
pdf导出文件名 = pdf导出文件名 + ".pdf";
else
pdf导出文件名 = pdf导出文件名.substring(0,
pdf导出文件名.lastIndexOf("."))
+ ".pdf";
}
}
});
int j = 10;
if (要求按钮号表.length() < 3)
j = 10;
else
for (int i = 0; i < 10; i++)
if (要求按钮号表.lastIndexOf("," + i + ",") >= 0)
j = j + 1;
int 按钮宽 = (窗口宽 - 20) / j;
int 按钮左边距 = 5;
for (int i = 0; i < 100; i++)
s3 = s3 + " ";
JButton 到Word文件 = new JButton("到Word文件");
到Word文件.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (word导出文件名.length() == 0)
word导出文件名 = JOptionPane.showInputDialog(
"请输入导出文件名名称 例如:F:\\java.doc", "");
ActiveXComponent word = new ActiveXComponent("Word.Application");
Dispatch documents = word.getProperty("Documents").toDispatch();
try {
Dispatch doc = Dispatch.call(documents, "Add").toDispatch();
Dispatch selection = Dispatch.get(word, "Selection")
.toDispatch();
Dispatch.call(selection, "HomeKey");
Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
Dispatch range = Dispatch.get(selection, "Range")
.toDispatch();
Dispatch newTable = Dispatch.call(tables, "Add", range,
new Variant(记录条数), new Variant(表格列数)).toDispatch();
for (int i = 0; i < 表格数据.length; i++) {
for (int j = 0; j < 表格列数; j++) {
Dispatch table = Dispatch.call(tables, "Item",
new Variant(1)).toDispatch();
Dispatch cell = Dispatch.call(table, "Cell",
new Variant(i + 1), new Variant(j + 1))
.toDispatch();
Dispatch.call(cell, "Select");
Dispatch.put(selection, "Text", 表格数据[i][j]);
}
}
Dispatch.call((Dispatch) Dispatch.call(word, "WordBasic")
.getDispatch(), "FileSaveAs", word导出文件名);
} catch (Exception e1) {
e1.printStackTrace();
} finally {
Dispatch.call(word, "Quit");
}
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",0,") >= 0)) {
到Word文件.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 10, 20);
frame.add(到Word文件);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 加到Word = new JButton("加到Word");
加到Word.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (word导出文件名.length() == 0)
word导出文件名 = JOptionPane.showInputDialog(
"请输入导出文件名名称 例如:F:\\java.doc", "");
try {
FileInputStream in = new FileInputStream(
new File(word导出文件名));
WordExtractor extractor = null;
extractor = new WordExtractor(in);
String 内容 = extractor.getText();
int k = 0;
for (int i = 0; i < 内容.length(); i++) {
if ((byte) (内容.charAt(i)) == 9)
k++;
if (内容.charAt(i) == '\r' || 内容.charAt(i) == '\n')
break;
}
ArrayList<String> list1 = new ArrayList<String>();
String s0 = "", 列 = "";
String[] 记录 = new String[k + 1];
int 条数 = 0, 列数0 = 0;
;
if (表格列数 != k + 1) {
JOptionPane.showMessageDialog(null,
"原文件中数据结构与数据表不同,不能作添加式导出!");
} else
for (int i = 0; i < 内容.length(); i++) {
if ((byte) (内容.charAt(i)) == 10) {
list1.add(s0);
条数++;
s0 = "";
} else if ((byte) (内容.charAt(i)) != 13)
s0 = s0 + 内容.substring(i, i + 1);
}
for (int i = 0; i < 条数; i++) {
s0 = list1.get(i);
列 = "";
列数0 = 0;
if (s0.length() > 1) {
for (int j = 0; j < s0.length(); j++) {
if (((byte) (内容.charAt(j)) < 19)
|| (j == s0.length() - 1)) {
if (j == s0.length() - 1)
列 = 列 + s0.substring(j, j + 1);
记录[列数0] = 列;
列数0++;
列 = "";
} else {
列 = 列 + s0.substring(j, j + 1);
}
}
表格模型.addRow(记录);
记录条数++;
列数0 = 0;
}
}
File 目标文件名 = new File(word导出文件名);
ActiveXComponent word = new ActiveXComponent(
"Word.Application");
Dispatch documents = word.getProperty("Documents")
.toDispatch();
try {
Dispatch doc = Dispatch.call(documents, "Add")
.toDispatch();
Dispatch selection = Dispatch.get(word, "Selection")
.toDispatch();
Dispatch.call(selection, "HomeKey");
Dispatch tables = Dispatch.get(doc, "Tables")
.toDispatch();
Dispatch range = Dispatch.get(selection, "Range")
.toDispatch();
Dispatch newTable = Dispatch.call(tables, "Add", range,
new Variant(记录条数), new Variant(表格列数))
.toDispatch();
for (int i1 = 0; i1 < 表格模型.getRowCount(); i1++) {
for (int j = 0; j < 表格列数; j++) {
Dispatch table = Dispatch.call(tables, "Item",
new Variant(1)).toDispatch();
Dispatch cell = Dispatch
.call(table, "Cell",
new Variant(i1 + 1),
new Variant(j + 1))
.toDispatch();
Dispatch.call(cell, "Select");
Dispatch.put(selection, "Text", 表格模型
.getValueAt(i1, j).toString());
}
}
Dispatch.call(
(Dispatch) Dispatch.call(word, "WordBasic")
.getDispatch(), "FileSaveAs", word导出文件名);
} catch (Exception e1) {
e1.printStackTrace();
} finally {
Dispatch.call(word, "Quit");
}
} catch (Exception e1) {
e1.printStackTrace();
}
return;
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",1,") >= 0)) {
加到Word.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(加到Word);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 到Excel文件 = new JButton("到Excel文件");
到Excel文件.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
HSSFWorkbook book = new HSSFWorkbook();
HSSFSheet sheet = book.createSheet(表名);
HSSFRow header = sheet.createRow(0);
int colCount = 表格列数;
for (int i = 0; i < 表格列数; i++) {
HSSFCell cell = header.createCell(i);
cell.setCellValue(new HSSFRichTextString(表格列名[i]));
}
for (int j = 0; j < 记录条数; j++) {
HSSFRow row = sheet.createRow(j);
for (int i = 0; i < colCount; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(new HSSFRichTextString(表格数据[j][i]));
}
}
try {
FileOutputStream fileO = new FileOutputStream(excel导出文件名);
book.write(fileO);
fileO.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",2,") >= 0)) {
到Excel文件.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(到Excel文件);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 加到Excel = new JButton("加到Excel");
加到Excel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (excel导出文件名.length() == 0)
excel导出文件名 = JOptionPane.showInputDialog(
"请输入导入文件完整路径 例如:F:\\java.xls", "");
InputStream is = null;
HSSFWorkbook wbWorkbook = null;
try {
is = new FileInputStream(excel导出文件名);
wbWorkbook = new HSSFWorkbook(is);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, "读取文件失败,请检查路径是否正确!",
"错误", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException e2) {
e2.printStackTrace();
}
HSSFSheet sheet = wbWorkbook.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
int 导入表格行数 = sheet.getPhysicalNumberOfRows();
HSSFRow row = sheet.getRow(1);
int 导入表格列数 = row.getPhysicalNumberOfCells();
if (导入表格列数 != 表格列数)
JOptionPane.showMessageDialog(null,
"原文件中数据结构与数据表不同,不能坐添加式导出!");
String[] val;
String value = "";
for (int i = 0; i < 导入表格行数; i++) {
row = sheet.getRow(i);
if (row != null) {
for (int j = 0; j < 导入表格列数; j++) {
HSSFCell cell = row.getCell(j);
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value += cell.getNumericCellValue() + ",";
break;
case HSSFCell.CELL_TYPE_STRING:
value += cell.getStringCellValue() + ",";
break;
default:
value += "0";
break;
}
}
}
val = value.split(",");
表格模型.addRow(val);
value = "";
}
}
HSSFWorkbook book = new HSSFWorkbook();
sheet = book.createSheet(表名);
HSSFRow header = sheet.createRow(0);
int colCount = 表格列数;
for (int i = 0; i < 表格列数; i++) {
HSSFCell cell = header.createCell(i);
cell.setCellValue(new HSSFRichTextString(表格列名[i]));
}
for (int j = 0; j < 表格模型.getRowCount(); j++) {
row = sheet.createRow(j);
for (int i = 0; i < colCount; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(new HSSFRichTextString(表格模型
.getValueAt(j, i).toString()));
}
}
try {
FileOutputStream fileO = new FileOutputStream(excel导出文件名);
book.write(fileO);
fileO.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",3,") >= 0)) {
加到Excel.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(加到Excel);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 标准格式 = new JButton("标准格式");
标准格式.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
File file = new File(导出文件名);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fs = new FileOutputStream(file);
for (int j1 = 0; j1 < 记录条数; j1++) {
for (int j2 = 0; j2 < 表格列数; j2++) {
fs.write((表格数据[j1][j2] + s3).substring(0,
表列数据宽度[j2]).getBytes());
}
fs.write(("" + x1).getBytes());
}
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",4,") >= 0)) {
标准格式.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(标准格式);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 紧凑格式 = new JButton("紧凑格式");
紧凑格式.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String 类型 = ",bit,smallint,integer,int,tinyint,real,money,smallmoney,bigint,"
+ "float,double,numeric,";
try {
File file = new File(导出文件名);
if (!file.exists()) {
file.createNewFile();
}
int length = 0;
FileOutputStream fs = new FileOutputStream(file);
for (int j1 = 0; j1 < 记录条数; j1++) {
for (int j2 = 0; j2 < 表格列数; j2++)
if (j2 < (表格列数 - 1))
if (类型.lastIndexOf(表列数据类型[j2]) >= 0)
fs.write((表格数据[j1][j2] + x4).getBytes());
else
fs.write((x3 + 表格数据[j1][j2] + x3 + x4)
.getBytes());
else
fs.write((x3 + 表格数据[j1][j2] + x3).getBytes());
fs.write(("" + x1).getBytes());
}
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",5,") >= 0)) {
紧凑格式.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(紧凑格式);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 自定义格式 = new JButton("自定义格式");
自定义格式.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
File file = new File(导出文件名);
if (!file.exists()) {
file.createNewFile();
}
int length = 0;
String x5 = JOptionPane.showInputDialog("请输入字段与字段间分隔符", "");
FileOutputStream fs = new FileOutputStream(file);
for (int j1 = 0; j1 < 记录条数; j1++) {
for (int j2 = 0; j2 < 表格列数; j2++)
if (j2 < (表格列数 - 1))
fs.write((表格数据[j1][j2] + x5).getBytes());
else
fs.write(表格数据[j1][j2].getBytes());
fs.write(("" + x1).getBytes());
}
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",6,") >= 0)) {
自定义格式.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(自定义格式);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 到XML文件 = new JButton("到XML文件");
到XML文件.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
File file = new File(xml导出文件名);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fs = new FileOutputStream(file);
fs.write(("<?xml version=" + x3 + "1.0" + x3 + " encoding="
+ x3 + "GB2312" + x3 + "?>").getBytes());
fs.write(("<Title>").getBytes());
for (int j1 = 0; j1 < 记录条数; j1++) {
fs.write((" <" + 表名 + ">").getBytes());
for (int j2 = 0; j2 < 表格列数; j2++) {
s2 = " <" + 表格列名[j2] + "> " + 表格数据[j1][j2]
+ " </" + 表格列名[j2] + ">";
fs.write(s2.getBytes());
}
fs.write((" </" + 表名 + ">").getBytes());
}
fs.write(("</Title>").getBytes());
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",7,") >= 0)) {
到XML文件.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(到XML文件);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton 到PDF文件 = new JButton("到PDF文件");
到PDF文件.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Document document = new Document();
try {
PdfWriter.getInstance(document, new FileOutputStream(
pdf导出文件名));
document.open();
BaseFont bfComic = BaseFont.createFont(
"c:\\windows\\fonts\\SIMFANG.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font font = new Font(bfComic, 14);
for (int i = 0; i < 记录条数; i++) {
String s1 = "";
;
for (int j = 0; j < 表格数据[0].length; j++)
s1 = s1 + 表格数据[i][j] + " ";
document.add(new Paragraph(s1, font));
}
} catch (DocumentException de) {
System.err.println(de.getMessage());
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",8,") >= 0)) {
到PDF文件.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(到PDF文件);
按钮左边距 = 按钮左边距 + 按钮宽;
}
JButton exitButton = new JButton("退 出");
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
frame.dispose();
}
});
if ((要求按钮号表.length() < 3) || (要求按钮号表.lastIndexOf(",9,") >= 0)) {
exitButton.setBounds(按钮左边距, 窗口高 - 120, 按钮宽 - 5, 20);
frame.add(exitButton);
按钮左边距 = 按钮左边距 + 按钮宽;
}
frame.setVisible(true); // 安装窗口
}
}
版本2
24.源码24,部件程序,对数据表某一个文本类字段检索查询
/**
* 程序文件名:dataQuery15.java
* 作者:程学先
* 完成时间:2013年11月17日
* 部件功能:对数据表某一个文本类字段检索查询。
* 被调用语句:datadataQuery15.means(parameter);
* 必须提供的参数:“表名”(parameter[4]),
* 如果欲打印,必须提供“打印格式文件名”(parameter[15])
* 打印格式文件是利用printFormat1.java生成的格式文件。
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.print.PrinterException;
import javax.swing.*;
import javax.swing.table.*;
import java.sql.*;
import java.io.*;
public class dataQuery15 extends JFrame {
static dataQuery15 frame = new dataQuery15();
static String variabl2603 = "";
static Choice choice;
static JTextField aTextField;
static JButton variabl1903, variabl2375, variabl2325, variabl2255,
variabl1971, variabl2091, variabl2617, variabl2639, variabl2599;
static String s1 = "", s2 = "", s3 = "";
static ResultSet rs;
static int b = 0, c = 0;
static int variabl2651;
static int variabl2127 = 0;
static String[] variabl2517, variabl25170;
static String variabl1079;
static String variabl1735;
static String variabl1633;
static String variabl17792 = "";
static String[][] variabl2319 = { { " > ", "大于" }, { " < ", "小于" },
{ " = ", "等于" }, { " >= ", "大于等于" }, { " <= ", "小于等于" },
{ "<>", "不等于" }, { " like ", "包含" }, { " not like ", "不包含" } };
static String[] variabl1501;
static int[] variabl1489;
static int variabl1853, variabl18531;
static String[][] variabl2197;
static Connection con;
static ResultSetMetaData rsmd3;
static Statement sta3;
static int variabl2483 = 800, variabl2503 = 700;
static JTextArea variabl2463;
static String[] variabl2405 = null;
static String variabl1187;
static int variabl2851 = 0, variabl2339 = 0;
public static void means(String[] parameter) {
frame = new dataQuery15();
variabl2603 = "";
s1 = "";
s2 = "";
s3 = "";
b = 0;
c = 0;
variabl2127 = 0;
variabl17792 = "";
variabl2483 = 800;
variabl2503 = 700;
variabl2319[0][0] = " > ";
variabl2319[0][1] = "大于";
variabl2319[1][0] = " < ";
variabl2319[1][1] = "小于";
variabl2319[2][0] = " = ";
variabl2319[2][1] = "等于";
variabl2319[3][0] = " >= ";
variabl2319[3][1] = "大于等于";
variabl2319[4][0] = " <= ";
variabl2319[4][1] = "小于等于";
variabl2319[5][0] = " <> ";
variabl2319[5][1] = "不等于";
variabl2319[6][0] = " like ";
variabl2319[6][1] = "包含";
variabl2319[7][0] = " not like ";
variabl2319[7][1] = "不包含";
String[] variabl240501 = { "浏览显示", "第一条", "下一条", "上一条", "最后一条", "打印预览",
"打印", "导出", "退出" };
variabl2405 = new String[variabl240501.length];
variabl2851 = 0;
for (int i0 = 0; i0 < variabl240501.length; i0++)
variabl2405[i0] = variabl240501[i0];
if (parameter[11].length() > 0) {
variabl1187 = parameter[11];
variabl1187 = variabl1187.replaceAll(";", ";");
variabl1187 = variabl1187.replaceAll("。", ";");
variabl1187 = variabl1187.replaceAll(":", ";");
variabl1187 = variabl1187.replaceAll(":", ";");
if (variabl1187.indexOf(";") > 0) {
String s601[] = variabl1187.split(",");
variabl1187 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (s601[i01].indexOf(";") > 0) {
String s602[] = s601[i01].split(";");
variabl2405[Integer.parseInt((s602[0]))] = s602[1];
variabl1187 = variabl1187 + "," + s602[0];
variabl2851++;
} else {
variabl1187 = variabl1187 + "," + s601[i01];
variabl2851++;
}
}
} else {
String s601[] = variabl1187.split(",");
variabl1187 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (i01 == 0)
variabl1187 = s601[i01];
else
variabl1187 = variabl1187 + "," + s601[i01];
variabl2851++;
}
}
} else {
variabl1187 = "";
for (int i1 = 0; i1 < variabl2405.length; i1++) {
if (i1 == 0)
variabl1187 = variabl1187 + i1;
else
variabl1187 = variabl1187 + "," + i1;
variabl2851++;
}
}
variabl1187 = "," + variabl1187 + ",";
variabl2483 = main1.variabl2483;
variabl2503 = main1.variabl2503;
int m1, m2;
try {
if (parameter[17].length() == 0) {
m1 = 0;
m2 = 0;
} else {
m1 = Integer.parseInt(parameter[17]);
m2 = Integer.parseInt(parameter[18]);
}
if (m1 > 0) {
if (m2 < 80) {
m1 = m1 * 10;
m2 = m2 * 10;
}
variabl2483 = m1;
variabl2503 = m2;
}
} catch (Exception e2) {
}
variabl2603 = parameter[4];
variabl1079 = parameter[15];
variabl1735 = parameter[8];
variabl1633 = parameter[19];
if (variabl1633.lastIndexOf(",") == variabl1633.length() - 1)
variabl1633 = variabl1633.substring(0, variabl1633.length() - 1);
variabl17792 = parameter[12];
variabl2517 = variabl1633.split(",");
String[] l3 = variabl1633.split(",");
variabl2651 = l3.length;
String[] l1;
if (variabl1735.length() > 0) {
l1 = variabl1735.split(",");
int[] l2 = new int[l1.length];
for (int i = 0; i < l1.length; i++) {
l2[i] = Integer.valueOf(l1[i]);
}
variabl2651 = l1.length;
variabl2517 = new String[variabl2651];
for (int i = 0; i < variabl2651; i++) {
variabl2517[i] = l3[l2[i]];
}
}
s1 = "";
for (int i = 0; i < variabl2651; i++) {
s1 = s1 + variabl2517[i] + ",";
}
s1 = s1.substring(0, s1.length() - 1);
try {
con = main1.getConn();
sta3 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
s1 = "select " + s1 + " from " + variabl2603;
ResultSet rs = sta3.executeQuery(s1);
rsmd3 = rs.getMetaData();
variabl1501 = new String[variabl2651];
variabl1489 = new int[variabl2651];
for (int i = 0; i < variabl2651; i++) {
variabl1501[i] = rsmd3.getColumnTypeName(i + 1);
variabl1489[i] = rsmd3.getColumnDisplaySize(i + 1);
if (variabl1489[i] < variabl2517[i].length())
variabl1489[i] = variabl2517[i].length();
if (variabl1489[i] > 50)
variabl1489[i] = 50;
b++;
}
int variabl1853 = 0;
rs.last();
variabl1853 = rs.getRow();
variabl2197 = new String[variabl1853][variabl2651];
rs.absolute(1);
c = 0;
b = 0;
while (c < variabl1853) {
rs.absolute(c + 1);
while (b < variabl2651) {
variabl2197[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
rs.close();
sta3.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "读取数据出错!");
}
frame.setTitle("查询部件程序 作者:程学先");
frame.setBounds(10, 10, variabl2483 - 10, variabl2503 - 10);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().setLayout(null);
final JPanel panel = new JPanel(false);
panel.setLayout(null);
panel.setBounds(20, 20, variabl2483 - 50, variabl2503 - 20);
JLabel label = new JLabel("请选择字段名:");
label.setBounds(20, 30, 100, 20);
panel.add(label);
choice = new Choice();
for (int i = 0; i < variabl2651; i++) {
if ((main1.variabl1543.lastIndexOf(variabl1501[i])) >= 0)
choice.add(variabl2517[i]);
}
choice.setBounds(120, 30, 100, 60);
panel.add(choice);
aTextField = new JTextField("", 10);
aTextField.setBounds(220, 30, 330, 20);
panel.add(aTextField);
final JButton selectButton = new JButton("文本检索");
selectButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
con = main1.getConn();
sta3 = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String variabl17650 = aTextField.getText();
int n0 = variabl17650.length();
variabl17650 = variabl17650 + " ";
int i = 0, j = 0, k1 = 0, k2 = 0;
s1 = "";
s2 = "";
String[] s7 = choice.getSelectedItem().trim().split(",");
s3 = s7[0];
String[] s6 = variabl1633.split(",");
for (int i1 = 0; i1 < s6.length; i1++)
if (s3.trim().equals(s6[i1].trim()))
variabl2127 = i1;
String s4 = "", s5 = "";
for (i = 0; i < n0; i++) {
if (variabl17650.substring(i, i + 1).equals("(")) {
if (k1 < 2) {
s1 = s1 + "(";
} else if (k1 == 3) {
s1 = s1 + " and " + "(";
} else if (k1 == 4) {
s1 = s1 + " or " + "(";
} else if (k1 == 5) {
s1 = s1 + " and not " + "(";
}
s2 = "";
k1 = 1;
} else if (variabl17650.substring(i, i + 1).equals(")")) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%')";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%')";
}
k1 = 2;
s2 = "";
} else if (variabl17650.substring(i, i + 1).equals("#"))
s2 = s2 + "-";
else if (variabl17650.substring(i, i + 1).equals("*"))
s2 = s2 + "%";
else if ((variabl17650.substring(i, i + 1).equals(" "))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 3;
s2 = "";
} else if ((variabl17650.substring(i, i + 1)
.equals("|"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like "
+ "'%" + s2 + "%'";
}
k1 = 4;
s2 = "";
} else if ((variabl17650.substring(i, i + 1)
.equals("-"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 5;
s2 = "";
} else {
s2 = s2 + variabl17650.substring(i, i + 1);
}
}
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%" + s2
+ "%'";
}
s1 = "select " + variabl1633 + " from " + variabl2603
+ " where " + s1;
ResultSet rs = sta3.executeQuery(s1);
ResultSetMetaData rsmdt4 = rs.getMetaData();
variabl2651 = rsmdt4.getColumnCount();
variabl1853 = 0;
rs.last();
variabl1853 = rs.getRow();
if (variabl1853 < 1) {
JOptionPane.showMessageDialog(null, "未查到满足条件的记录!");
return;
}
variabl2197 = new String[variabl1853][variabl2651];
rs.absolute(1);
c = 0;
b = 0;
variabl18531 = 0;
while (c < variabl1853) {
rs.absolute(c + 1);
while (b < variabl2651) {
variabl2197[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
rs.close();
sta3.close();
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "查询数据出错!" + s1);
}
}
});
selectButton.setBounds(550, 30, 90, 20);
panel.add(selectButton);
JButton variabl1657 = new JButton("格式提示");
variabl1657.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame frame1 = new JFrame();
frame1.setTitle("查询部件程序");
frame1.setBounds(350, 140, 440, 290);
frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame1.getContentPane().setLayout(null);
String s0 = "";
char x1 = 10;
s0 = "检索字的格式:检索字区分大、小写。" + x1
+ "空格、&、|、-、( )、$、#、*、\\ 均为特殊意义字符" + x1
+ "(注意均应为英文字符),字符两边不要有空格。" + x1
+ "空格或& 表示要求两边内容均要包含在内。" + x1 + "“|”表示要求两边内容至少有一个包含在内"
+ x1 + "“-”表示后边内容不包含在内。" + x1
+ "“( )”表示其内部分为整体内容,全要满足。" + x1
+ "“$”表示其后的词在标题之首,要放在全文检索词最前面。" + x1
+ "“#”表示在查找的二个词间可能有若干个任意的字符," + x1 + "任意字符的个数不多于#号的个数。"
+ x1 + "“*”表示在查找的二个词间可能有任意多个任意字符。" + x1
+ "“\\”后边应当是上述字符中任意一个," + x1
+ "表示在此处该字符不具有上述特殊意义,只是检索内容中的一个字。";
JTextArea variabl24631;
variabl24631 = new JTextArea(s0, 10, 10);
JScrollPane variabl25091 = new JScrollPane(variabl24631);
variabl25091.setBounds(10, 10, 415, 235);
frame1.add(variabl25091);
frame1.setVisible(true);
}
});
variabl1657.setBounds(640, 30, 90, 20);
panel.add(variabl1657);
variabl2463 = new JTextArea("", 10, 10);
JScrollPane variabl2509 = new JScrollPane(variabl2463);
variabl2509.setBounds(20, 70, 700, 500);
panel.add(variabl2509);
variabl2339 = (variabl2483 - 60) / variabl2851;
int variabl2337 = 30;
variabl1903 = new JButton(variabl2405[0]);
variabl1903.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tableTenance.tableModel(800, 600, variabl2517, variabl1489,
variabl2197, variabl1501);
}
});
variabl1903.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",0,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl1903);
}
variabl2375 = new JButton(variabl2405[1]);
variabl2375.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
variabl18531 = 0;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
});
variabl2375.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",1,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2375);
}
variabl2325 = new JButton(variabl2405[2]);
variabl2325.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl18531 < variabl1853 - 1) {
variabl18531++;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
}
});
variabl2325.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",2,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2325);
}
variabl2255 = new JButton(variabl2405[3]);
variabl2255.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl18531 > 0) {
variabl18531--;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
}
});
variabl2255.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",3,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2255);
}
variabl1971 = new JButton(variabl2405[4]);
variabl1971.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
variabl18531 = variabl1853 - 1;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
});
variabl1971.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",4,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl1971);
}
variabl2091 = new JButton(variabl2405[5]);
variabl2091.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl1079.trim().length() > 0)
dataPreview1.printView1(variabl2197, variabl1079);
else
dataPreview0.printView1(variabl2517, variabl2197,
variabl1489, variabl2603 + "表格预览");
}
});
variabl2091.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",5,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2091);
}
variabl2617 = new JButton(variabl2405[6]);
variabl2617.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl1079.trim().length() > 0)
dataPrint1.print1(variabl2197, variabl1079);
else {
final JTable table = null;
final DefaultTableModel model;
model = new DefaultTableModel(variabl2197, variabl2517);
for (int i = 0; i < variabl2517.length; i++) {
TableColumn tc = table.getColumn(variabl2517[i]);
JTableHeader header = table.getTableHeader();
if (variabl1489[i] < variabl2517[i].length())
variabl1489[i] = variabl2517[i].length();
tc.setPreferredWidth(variabl1489[i] * 9);
tc.setMaxWidth(variabl1489[i] * 9);
}
try {
table.print();
} catch (PrinterException e1) {
e1.printStackTrace();
}
}
}
});
variabl2617.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",6,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2617);
}
variabl2639 = new JButton(variabl2405[7]);
variabl2639.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dataTransfer0.Trans(variabl2517, variabl1501, variabl1489,
variabl17792, variabl2197, variabl2603);
}
});
variabl2639.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",7,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2639);
}
variabl2599 = new JButton(variabl2405[8]);
variabl2599.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel.setVisible(false);
frame.setVisible(false);
frame.dispose();
}
});
variabl2599.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",8,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2599);
}
frame.getContentPane().add(panel, null);
frame.setVisible(true);
frame.getContentPane().add(panel, BorderLayout.SOUTH);
}
}
25.源码25,部件程序,对多数据表中某一个文本类字段检索查询
/**
* 程序文件名:dataQuery16.java
* 作者:程学先
* 完成时间:2013年11月17日
* 部件功能:对多数据表中某一个文本类字段检索查询,可以应用字典表改变标签内容。
* 被调用语句:datadataQuery16.means(parameter);
* 要求提供的参数:“表名”(parameter[4])。
* 如果欲打印,必须提供“打印格式文件名”(parameter[15])
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.print.PrinterException;
import javax.swing.*;
import javax.swing.table.*;
import java.sql.*;
import java.io.*;
public class dataQuery16 extends JFrame {
static dataQuery16 frame = new dataQuery16();
static String variabl2603 = "";
static String variabl1873;
static String variabl2429;
static Choice choice;
static JTextField aTextField;
static JButton variabl1903, variabl2375, variabl2325, variabl2255,
variabl1971, variabl2091, variabl2617, variabl2639, variabl2599;
static String s1 = "", s2 = "", s3 = "", s4 = "";
static ResultSet rs;
static int b = 0, c = 0;
static int variabl2651;
static int variabl2127 = 0;
static String[][] variabl2517, variabl25170;
static String variabl1079;
static String variabl1735;
static String variabl1633;
static String variabl2049;
static String variabl1325;
static String[] variabl1787;
static String variabl17792 = "";
static String[][] variabl2319 = { { " > ", "大于" }, { " < ", "小于" },
{ " = ", "等于" }, { " >= ", "大于等于" }, { " <= ", "小于等于" },
{ "<>", "不等于" }, { " like ", "包含" }, { " not like ", "不包含" } };
static String[] variabl1501;
static int[] variabl1489;
static int variabl1853, variabl18531;
static String[][] variabl2197;
static Connection con;
static ResultSetMetaData rsmd3;
static Statement sta3;
static int variabl2483 = 800, variabl2503 = 700;
static JTextArea variabl2463, variabl24632;
static String[] variabl2405 = null;
static String variabl1187;
static int variabl2851 = 0, variabl2339 = 0;
public static void means(String[] parameter) {
frame = new dataQuery16();
variabl2603 = "";
s1 = "";
s2 = "";
s3 = "";
b = 0;
c = 0;
variabl2127 = 0;
variabl2319[0][0] = " > ";
variabl2319[0][1] = "大于";
variabl2319[1][0] = " < ";
variabl2319[1][1] = "小于";
variabl2319[2][0] = " = ";
variabl2319[2][1] = "等于";
variabl2319[3][0] = " >= ";
variabl2319[3][1] = "大于等于";
variabl2319[4][0] = " <= ";
variabl2319[4][1] = "小于等于";
variabl2319[5][0] = " <> ";
variabl2319[5][1] = "不等于";
variabl2319[6][0] = " like ";
variabl2319[6][1] = "包含";
variabl2319[7][0] = " not like ";
variabl2319[7][1] = "不包含";
variabl2483 = 800;
variabl2503 = 700;
String[] variabl240501 = { "浏览显示", "第一条", "下一条", "上一条", "最后一条", "打印预览",
"打印", "导出", "退出" };
variabl2405 = new String[variabl240501.length];
variabl2851 = 0;
for (int i0 = 0; i0 < variabl240501.length; i0++)
variabl2405[i0] = variabl240501[i0];
if (parameter[11].length() > 0) {
variabl1187 = parameter[11];
variabl1187 = variabl1187.replaceAll(";", ";");
variabl1187 = variabl1187.replaceAll("。", ";");
variabl1187 = variabl1187.replaceAll(":", ";");
variabl1187 = variabl1187.replaceAll(":", ";");
if (variabl1187.indexOf(";") > 0) {
String s601[] = variabl1187.split(",");
variabl1187 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (s601[i01].indexOf(";") > 0) {
String s602[] = s601[i01].split(";");
variabl2405[Integer.parseInt((s602[0]))] = s602[1];
variabl1187 = variabl1187 + "," + s602[0];
variabl2851++;
} else {
variabl1187 = variabl1187 + "," + s601[i01];
variabl2851++;
}
}
} else {
String s601[] = variabl1187.split(",");
variabl1187 = "";
for (int i01 = 0; i01 < s601.length; i01++) {
if (i01 == 0)
variabl1187 = s601[i01];
else
variabl1187 = variabl1187 + "," + s601[i01];
variabl2851++;
}
}
} else {
variabl1187 = "";
for (int i1 = 0; i1 < variabl2405.length; i1++) {
if (i1 == 0)
variabl1187 = variabl1187 + i1;
else
variabl1187 = variabl1187 + "," + i1;
variabl2851++;
}
}
variabl1187 = "," + variabl1187 + ",";
variabl2483 = main1.variabl2483;
variabl2503 = main1.variabl2503;
int m1, m2;
try {
if (parameter[17].length() == 0) {
m1 = 0;
m2 = 0;
} else {
m1 = Integer.parseInt(parameter[17]);
m2 = Integer.parseInt(parameter[18]);
}
if (m1 > 0) {
if (m2 < 80) {
m1 = m1 * 10;
m2 = m2 * 10;
}
variabl2483 = m1;
variabl2503 = m2;
}
} catch (Exception e2) {
}
variabl2603 = parameter[4];
variabl1079 = parameter[15];
variabl2049 = parameter[20];
variabl1325 = parameter[19];
variabl1735 = parameter[8];
variabl1633 = parameter[19];
if (variabl1633.lastIndexOf(",") == variabl1633.length() - 1)
variabl1633 = variabl1633.substring(0, variabl1633.length() - 1);
String[] variabl25172 = variabl1633.split(",");
variabl17792 = parameter[12];
String[] sn = variabl1735.split(",");
if (variabl1735.length() > 0) {
variabl1633 = "";
for (int i = 0; i < sn.length; i++)
if (i == 0)
variabl1633 = variabl25172[Integer.parseInt(sn[i])];
else
variabl1633 = variabl1633 + ","
+ variabl25172[Integer.parseInt(sn[i])];
}
String[] variabl25171 = variabl1633.split(",");
variabl2517 = new String[2][variabl25171.length];
variabl2517[0] = variabl1633.split(",");
variabl2517[1] = variabl1633.split(",");
variabl2429 = parameter[0];
String[] l3 = variabl1633.split(",");
variabl2651 = l3.length;
String[] l1;
variabl1873 = "";
String s11 = variabl2603;
String[] s12;
if (variabl2603.indexOf(",") > 0) {
s12 = variabl2603.split(",");
s11 = s12[0];
}
s4 = s11;
variabl1873 = "";
String[] t1;
if (variabl2429.lastIndexOf(s11 + "字典表") > 0) {
t1 = variabl2429.split(",");
for (int i = 0; i < t1.length; i++)
if (t1[i].lastIndexOf(s11 + "字典表") >= 0)
variabl1873 = t1[i];
}
s1 = "";
for (int i = 0; i < variabl2651; i++) {
s1 = s1 + variabl2517[0][i] + ",";
}
s1 = s1.substring(0, s1.length() - 1);
int variabl26510 = 0;
if (variabl1873.length() > 0) {
try {
con = main1.getConn();
sta3 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
s2 = "select * from " + variabl1873;
rs = sta3.executeQuery(s2);
rs.last();
int kl = rs.getRow();
ResultSetMetaData rsmd = rs.getMetaData();
variabl26510 = rsmd.getColumnCount();
variabl25170 = new String[2][kl];
int numberOfColumns = rsmd.getColumnCount();
String s14 = "";
String s15 = "";
int b = 1;
while (rs.absolute(b)) {
b++;
s14 = rs.getString(1);
s15 = rs.getString(2);
variabl25170[0][b - 2] = s14;
variabl25170[1][b - 2] = s15;
for (int j = 0; j < variabl2517[0].length; j++) {
if ((variabl2517[0][j].trim().equals(s14.trim()))
|| (variabl2517[0][j].indexOf("." + s14) > 0)) {
variabl2517[1][j] = s15;
break;
}
}
}
rs.close();
con.close();
sta3.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "连接数据库出错!");
}
}
try {
con = main1.getConn();
sta3 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
if (variabl2049.trim().length() > 0)
s1 = "select " + s1 + " from " + variabl2603 + " where "
+ variabl2049;
else
s1 = "select " + s1 + " from " + variabl2603;
ResultSet rs = sta3.executeQuery(s1);
rsmd3 = rs.getMetaData();
variabl1501 = new String[variabl2651];
variabl1489 = new int[variabl2651];
for (int i = 0; i < variabl2651; i++) {
variabl2517[0][i] = rsmd3.getColumnName(i + 1);
variabl2517[1][i] = variabl2517[0][i];
if (variabl26510 > 0)
for (int j = 0; j < variabl25170[0].length; j++) {
if ((variabl25170[0][j].trim()
.equals(variabl2517[0][i]))
|| (variabl25170[0][j].indexOf("."
+ variabl2517[0][i]) > 0)) {
variabl2517[1][i] = variabl25170[1][j];
break;
}
}
variabl1501[i] = rsmd3.getColumnTypeName(i + 1);
variabl1489[i] = rsmd3.getColumnDisplaySize(i + 1);
if (variabl1489[i] < variabl2517[0][i].length())
variabl1489[i] = variabl2517[0][i].length();
if (variabl1489[i] < variabl2517[1][i].length())
variabl1489[i] = variabl2517[1][i].length();
if (variabl1489[i] > 50)
variabl1489[i] = 50;
b++;
}
int variabl1853 = 0;
rs.last();
variabl1853 = rs.getRow();
variabl2197 = new String[variabl1853][variabl2651];
rs.absolute(1);
c = 0;
b = 0;
while (c < variabl1853) {
rs.absolute(c + 1);
while (b < variabl2651) {
variabl2197[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
rs.close();
sta3.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "读取数据出错!");
}
frame.setTitle("查询部件程序 作者:程学先");
frame.setBounds(10, 10, variabl2483 - 10, variabl2503 - 10);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().setLayout(null);
final JPanel panel = new JPanel(false);
panel.setLayout(null);
panel.setBounds(20, 20, variabl2483 - 50, variabl2503 - 20);
JLabel label = new JLabel("请选择字段名:");
label.setBounds(20, 30, 100, 20);
panel.add(label);
choice = new Choice();
for (int i = 0; i < variabl2651; i++) {
if ((main1.variabl1543.lastIndexOf(variabl1501[i])) >= 0)
choice.add(variabl2517[1][i]);
}
choice.setBounds(120, 30, 100, 60);
panel.add(choice);
aTextField = new JTextField("", 10);
aTextField.setBounds(220, 30, 330, 20);
panel.add(aTextField);
final JButton selectButton = new JButton("文本检索");
selectButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
con = main1.getConn();
sta3 = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String variabl17650 = aTextField.getText();
int n0 = variabl17650.length();
variabl17650 = variabl17650 + " ";
int i = 0, j = 0, k1 = 0, k2 = 0;
s1 = "";
s2 = "";
String[] s7 = choice.getSelectedItem().trim().split(",");
s3 = s7[0];
for (int i2 = 0; i2 < variabl2517[0].length; i2++) {
if (variabl2517[1][i2].equals(s3))
s3 = variabl2517[0][i2];
}
if (variabl1633.indexOf(s4 + "." + s3) >= 0)
s3 = s4 + "." + s3;
String[] s6 = variabl1633.split(",");
for (int i1 = 0; i1 < s6.length; i1++)
if (s3.trim().equals(s6[i1].trim()))
variabl2127 = i1;
for (i = 0; i < n0; i++) {
if (variabl17650.substring(i, i + 1).equals("(")) {
if (k1 < 2) {
s1 = s1 + "(";
} else if (k1 == 3) {
s1 = s1 + " and " + "(";
} else if (k1 == 4) {
s1 = s1 + " or " + "(";
} else if (k1 == 5) {
s1 = s1 + " and not " + "(";
}
s2 = "";
k1 = 1;
} else if (variabl17650.substring(i, i + 1).equals(")")) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%')";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%')";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%')";
}
k1 = 2;
s2 = "";
} else if (variabl17650.substring(i, i + 1).equals("#"))
s2 = s2 + "-";
else if (variabl17650.substring(i, i + 1).equals("*"))
s2 = s2 + "%";
else if ((variabl17650.substring(i, i + 1).equals(" "))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 3;
s2 = "";
} else if ((variabl17650.substring(i, i + 1)
.equals("|"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 4;
s2 = "";
} else if ((variabl17650.substring(i, i + 1)
.equals("-"))) {
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2
+ "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%"
+ s2 + "%'";
}
k1 = 5;
s2 = "";
} else {
s2 = s2 + variabl17650.substring(i, i + 1);
}
}
if (k1 < 2) {
s1 = s1 + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 3) {
s1 = s1 + " and " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 4) {
s1 = s1 + " or " + s3 + " like " + "'%" + s2 + "%'";
} else if (k1 == 5) {
s1 = s1 + " and " + s3 + " not like " + "'%" + s2
+ "%'";
}
if (variabl2049.trim().length() > 0)
s1 = "select " + variabl1633 + " from " + variabl2603
+ " where " + variabl2049 + " and " + s1;
else
s1 = "select " + variabl1633 + " from " + variabl2603
+ " where " + s1;
variabl24632.setText(s1);
ResultSet rs = sta3.executeQuery(s1);
variabl1853 = 0;
rs.last();
variabl1853 = rs.getRow();
if (variabl1853 < 1) {
JOptionPane.showMessageDialog(null, "未查到满足条件的记录!");
return;
}
variabl2197 = new String[variabl1853][s6.length];
rs.absolute(1);
c = 0;
b = 0;
variabl18531 = 0;
while (c < variabl1853) {
rs.absolute(c + 1);
while (b < s6.length) {
variabl2197[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
rs.close();
sta3.close();
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "查询数据出错!" + s1);
}
}
});
selectButton.setBounds(550, 30, 90, 20);
panel.add(selectButton);
JButton variabl1657 = new JButton("格式提示");
variabl1657.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame frame1 = new JFrame();
frame1.setTitle("查询部件程序");
frame1.setBounds(350, 140, 440, 290);
frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame1.getContentPane().setLayout(null);
String s0 = "";
char x1 = 10;
s0 = "检索字的格式:检索字区分大、小写。" + x1
+ "空格、&、|、-、( )、$、#、*、\\ 均为特殊意义字符" + x1
+ "(注意均应为英文字符),字符两边不要有空格。" + x1
+ "空格或& 表示要求两边内容均要包含在内。" + x1 + "“|”表示要求两边内容至少有一个包含在内"
+ x1 + "“-”表示后边内容不包含在内。" + x1
+ "“( )”表示其内部分为整体内容,全要满足。" + x1
+ "“$”表示其后的词在标题之首,要放在全文检索词最前面。" + x1
+ "“#”表示在查找的二个词间可能有若干个任意的字符," + x1 + "任意字符的个数不多于#号的个数。"
+ x1 + "“*”表示在查找的二个词间可能有任意多个任意字符。" + x1
+ "“\\”后边应当是上述字符中任意一个," + x1
+ "表示在此处该字符不具有上述特殊意义,只是检索内容中的一个字。";
JTextArea variabl24631;
variabl24631 = new JTextArea(s0, 10, 10);
JScrollPane variabl25091 = new JScrollPane(variabl24631);
variabl25091.setBounds(10, 10, 415, 235);
frame1.add(variabl25091);
frame1.setVisible(true);
}
});
variabl1657.setBounds(640, 30, 90, 20);
panel.add(variabl1657);
variabl2463 = new JTextArea("", 10, 10);
JScrollPane variabl2509 = new JScrollPane(variabl2463);
variabl2509.setBounds(20, 120, 700, 450);
panel.add(variabl2509);
JLabel label2 = new JLabel("SQL查询语句");
label2.setBounds(20, 60, 100, 20);
panel.add(label2);
variabl24632 = new JTextArea("", 10, 10);
variabl24632.setLineWrap(true);
JScrollPane variabl25092 = new JScrollPane(variabl24632);
variabl25092.setBounds(120, 60, 490, 50);
panel.add(variabl25092);
JButton variabl2621 = new JButton("执行SQL语句");
variabl2621.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
con = main1.getConn();
sta3 = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
s1 = variabl24632.getText();
ResultSet rs = sta3.executeQuery(s1);
ResultSetMetaData rsmdt4 = rs.getMetaData();
variabl2651 = rsmdt4.getColumnCount();
variabl1853 = 0;
rs.last();
variabl1853 = rs.getRow();
if (variabl1853 < 1) {
JOptionPane.showMessageDialog(null, "未查到满足条件的记录!");
return;
}
String[] s6 = variabl1633.split(",");
variabl2197 = new String[variabl1853][variabl2651];
rs.absolute(1);
c = 0;
b = 0;
variabl18531 = 0;
while (c < variabl1853) {
rs.absolute(c + 1);
while (b < variabl2651) {
variabl2197[c][b] = rs.getString(b + 1);
b++;
}
c++;
b = 0;
}
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
rs.close();
sta3.close();
con.close();
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, "查询数据出错!" + s1);
}
}
});
variabl2621.setBounds(615, 60, 120, 20);
panel.add(variabl2621);
variabl2339 = (variabl2483 - 60) / variabl2851;
int variabl2337 = 30;
variabl1903 = new JButton(variabl240501[0]);
variabl1903.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tableTenance.tableModel(800, 600, variabl2517[1], variabl1489,
variabl2197, variabl1501);
}
});
variabl1903.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",0,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl1903);
}
variabl2375 = new JButton(variabl2405[1]);
variabl2375.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
variabl18531 = 0;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
});
variabl2375.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",1,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2375);
}
variabl2325 = new JButton(variabl2405[2]);
variabl2325.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl18531 < variabl1853 - 1) {
variabl18531++;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
}
});
variabl2325.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",2,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2325);
}
variabl2255 = new JButton(variabl2405[3]);
variabl2255.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl18531 > 0) {
variabl18531--;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
}
});
variabl2255.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",3,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2255);
}
variabl1971 = new JButton(variabl2405[4]);
variabl1971.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
variabl18531 = variabl1853 - 1;
variabl2463.setText(variabl2197[variabl18531][variabl2127]);
}
});
variabl1971.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",4,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl1971);
}
variabl2091 = new JButton(variabl2405[5]);
variabl2091.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl1079.trim().length() > 0)
dataPreview1.printView1(variabl2197, variabl1079);
else
dataPreview0.printView1(variabl2517[1], variabl2197,
variabl1489, variabl2603 + "表格预览");
}
});
variabl2091.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",5,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2091);
}
variabl2617 = new JButton(variabl2405[6]);
variabl2617.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl1079.trim().length() > 0)
dataPrint1.print1(variabl2197, variabl1079);
else {
final JTable table = null;
final DefaultTableModel model;
model = new DefaultTableModel(variabl2197, variabl2517[1]);
for (int i = 0; i < variabl2517[1].length; i++) {
TableColumn tc = table.getColumn(variabl2517[1][i]);
JTableHeader header = table.getTableHeader();
if (variabl1489[i] < variabl2517[1][i].length())
variabl1489[i] = variabl2517[1][i].length();
tc.setPreferredWidth(variabl1489[i] * 9);
tc.setMaxWidth(variabl1489[i] * 9);
}
try {
table.print();
} catch (PrinterException e1) {
e1.printStackTrace();
}
}
}
});
variabl2617.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",6,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2617);
}
variabl2639 = new JButton(variabl2405[7]);
variabl2639.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dataTransfer0.Trans(variabl2517[1], variabl1501, variabl1489,
variabl17792, variabl2197, variabl2603);
}
});
variabl2639.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",7,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2639);
}
variabl2599 = new JButton(variabl2405[8]);
variabl2599.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
panel.setVisible(false);
frame.setVisible(false);
frame.dispose();
}
});
variabl2599.setBounds(variabl2337, variabl2503 - 100, variabl2339, 20);
if (variabl1187.indexOf(",8,") >= 0) {
variabl2337 = variabl2337 + variabl2339;
panel.add(variabl2599);
}
frame.getContentPane().add(panel, null);
frame.setVisible(true);
frame.getContentPane().add(panel, BorderLayout.SOUTH);
}
}
26.源码26,公共程序,导出数据到txt文件、Excel文件、Word文件、PDF文件与xml文件公共程序
/**
* 程序文件名:dataTransfer0.java
* 作者:程学先:
* 功能:导出数据到txt文件、Excel文件、Word文件、PDF文件与xml文件公共程序。
* 导出到word与excel有覆盖式与添加式两种。
* 完成日期:2013年1月22日
* 被调用语句:dataTransfer0.Trans(String [] variabl25171,String [] variabl11691,
* int [] variabl11191,String variabl11871,String [][] variabl21971,String variabl2603);
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.io.File.*;
import javax.swing.*;
import javax.swing.table.*;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.ss.usermodel.Sheet;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import java.sql.*;
import java.util.ArrayList;
import java.util.Vector;
public class dataTransfer0 extends JFrame {
private static JTable variabl26551;
static Connection con;
static String variabl2603;
static int variabl2483 = 1200, variabl2503 = 700;
static int variabl2113;
static String[] variabl1913;
static String[][] variabl2197;
static String[] variabl1169;
static int[] variabl1119, variabl1125;
static int variabl1853, variabl18531 = 0;
static String[] variabl2405 = null;
static String variabl1187;
static int variabl1423 = 0, variabl2339 = 0;
static DefaultTableModel variabl1965;
static JTextField fa1;
static String variabl1679 = "", variabl1463 = "";
static String variabl1003 = "";
static String variabl1015 = "";
static String variabl1033 = "";
static String variabl1031 = "";
static String s1 = "", s2 = "", s3 = "";
static char x1 = 10, x2 = 13, x3 = '"', x4 = ',';
static String[] f01;
static String[] variabl1425;
static PreparedStatement pstmt;
static Statement sta;
static void Trans(String[] variabl25171, String[] variabl11691,
int[] variabl11191, String variabl11871, String[][] variabl21971,
String variabl26031) {
variabl2483 = 1200;
variabl2503 = 700;
variabl18531 = 0;
variabl1423 = 0;
variabl2339 = 0;
variabl1679 = "";
variabl1463 = "";
variabl1003 = "";
variabl1015 = "";
variabl1033 = "";
s1 = "";
s2 = "";
s3 = "";
x1 = 10;
x2 = 13;
x3 = '"';
x4 = ',';
File file = new File(".\\com\\iText-5.0.5.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
file = new File(".\\com\\jacob.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
file = new File(".\\com\\poi-3.8-20120326.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
file = new File(".\\com\\PDFBox-0.7.3.jar");
if (!file.exists()) {
JOptionPane.showMessageDialog(null, "请将有关jar文件包下载到com文件夹中!");
return;
}
final dataTransfer0 frame = new dataTransfer0();
frame.setTitle("数据导出到文件二级部件 作者:程学先");
frame.setBounds(10, 10, variabl2483, variabl2503);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
variabl2603 = variabl26031;
variabl2113 = variabl25171.length;
variabl1913 = new String[variabl2113];
for (int i = 0; i < variabl2113; i++)
variabl1913[i] = variabl25171[i];
variabl1169 = new String[variabl2113];
for (int i = 0; i < variabl2113; i++)
variabl1169[i] = variabl11691[i];
variabl1119 = new int[variabl2113];
for (int i = 0; i < variabl2113; i++)
variabl1119[i] = variabl11191[i];
variabl2197 = new String[variabl21971.length][variabl2113];
for (int i = 0; i < variabl21971.length; i++)
for (int j = 0; j < variabl2113; j++)
variabl2197[i][j] = variabl21971[i][j];
variabl1187 = variabl11871;
variabl1853 = variabl2197.length;
variabl1187 = "," + variabl11871 + ",";
final JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(0, 0, variabl2483 - 100, variabl2503 - 180);
frame.setLayout(null);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
variabl1965 = new DefaultTableModel(variabl2197, variabl1913);
variabl26551 = new JTable(variabl1965);
variabl26551.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
variabl26551
.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
for (int i = 0; i < variabl2113; i++) {
TableColumn tc = variabl26551.getColumn(variabl1913[i]);
JTableHeader header = variabl26551.getTableHeader();
tc.setPreferredWidth(variabl1119[i] * 14);
tc.setMaxWidth(variabl1119[i] * 14);
tc.sizeWidthToFit();
}
scrollPane.setViewportView(variabl26551);
variabl26551.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
}
});
JLabel fl1 = new JLabel("文件名");
fl1.setBounds(100, variabl2503 - 160, 50, 20);
frame.add(fl1);
fa1 = new JTextField("", 20);
fa1.setBounds(150, variabl2503 - 160, 200, 20);
frame.add(fa1);
fa1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (fa1.getText().length() < 1) {
final JFileChooser fc = new JFileChooser(".\\");
fc.showOpenDialog(null);
if (fc.getSelectedFile() != null)
fa1.setText(fc.getSelectedFile().toString());
variabl1463 = fc.getSelectedFile().toString();
variabl1003 = variabl1463;
if (variabl1003.lastIndexOf(".xls") < 0)
if (variabl1003.lastIndexOf(".") < 0)
variabl1003 = variabl1003 + ".xls";
else
variabl1003 = variabl1003.substring(0,
variabl1003.lastIndexOf("."))
+ ".xls";
variabl1015 = variabl1463;
if (variabl1015.lastIndexOf(".doc") < 0)
if (variabl1015.lastIndexOf(".") < 0)
variabl1015 = variabl1015 + ".doc";
else
variabl1015 = variabl1015.substring(0,
variabl1015.lastIndexOf("."))
+ ".doc";
variabl1033 = variabl1463;
if (variabl1033.lastIndexOf(".xml") < 0)
if (variabl1033.lastIndexOf(".") < 0)
variabl1033 = variabl1033 + ".xml";
else
variabl1033 = variabl1033.substring(0,
variabl1033.lastIndexOf("."))
+ ".xml";
variabl1031 = variabl1463;
if (variabl1031.lastIndexOf(".pdf") < 0)
if (variabl1031.lastIndexOf(".") < 0)
variabl1031 = variabl1031 + ".pdf";
else
variabl1031 = variabl1031.substring(0,
variabl1031.lastIndexOf("."))
+ ".pdf";
}
}
});
int j = 10;
if (variabl1187.length() < 3)
j = 10;
else
for (int i = 0; i < 10; i++)
if (variabl1187.lastIndexOf("," + i + ",") >= 0)
j = j + 1;
int variabl2339 = (variabl2483 - 20) / j;
int variabl1423 = 5;
for (int i = 0; i < 100; i++)
s3 = s3 + " ";
JButton variabl1067 = new JButton("到Word文件");
variabl1067.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl1015.length() == 0)
variabl1015 = JOptionPane.showInputDialog(
"请输入导出文件名名称 例如:F:\\java.doc", "");
ActiveXComponent word = new ActiveXComponent("Word.Application");
Dispatch documents = word.getProperty("Documents").toDispatch();
try {
Dispatch doc = Dispatch.call(documents, "Add").toDispatch();
Dispatch selection = Dispatch.get(word, "Selection")
.toDispatch();
Dispatch.call(selection, "HomeKey");
Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();
Dispatch range = Dispatch.get(selection, "Range")
.toDispatch();
Dispatch newTable = Dispatch.call(tables, "Add", range,
new Variant(variabl1853), new Variant(variabl2113))
.toDispatch();
for (int i = 0; i < variabl2197.length; i++) {
for (int j = 0; j < variabl2113; j++) {
Dispatch table = Dispatch.call(tables, "Item",
new Variant(1)).toDispatch();
Dispatch cell = Dispatch.call(table, "Cell",
new Variant(i + 1), new Variant(j + 1))
.toDispatch();
Dispatch.call(cell, "Select");
Dispatch.put(selection, "Text", variabl2197[i][j]);
}
}
Dispatch.call((Dispatch) Dispatch.call(word, "WordBasic")
.getDispatch(), "FileSaveAs", variabl1015);
} catch (Exception e1) {
e1.printStackTrace();
} finally {
Dispatch.call(word, "Quit");
}
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",0,") >= 0)) {
variabl1067.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 10, 20);
frame.add(variabl1067);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl1149 = new JButton("加到Word");
variabl1149.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl1015.length() == 0)
variabl1015 = JOptionPane.showInputDialog(
"请输入导出文件名名称 例如:F:\\java.doc", "");
try {
FileInputStream in = new FileInputStream(new File(
variabl1015));
WordExtractor extractor = null;
extractor = new WordExtractor(in);
String variabl2581 = extractor.getText();
int k = 0;
for (int i = 0; i < variabl2581.length(); i++) {
if ((byte) (variabl2581.charAt(i)) == 9)
k++;
if (variabl2581.charAt(i) == '\r'
|| variabl2581.charAt(i) == '\n')
break;
}
ArrayList<String> list1 = new ArrayList<String>();
String s0 = "", variabl2703 = "";
String[] variabl2615 = new String[k + 1];
int variabl2569 = 0, variabl26510 = 0;
;
if (variabl2113 != k + 1) {
JOptionPane.showMessageDialog(null,
"原文件中数据结构与数据表不同,不能作添加式导出!");
} else
for (int i = 0; i < variabl2581.length(); i++) {
if ((byte) (variabl2581.charAt(i)) == 10) {
list1.add(s0);
variabl2569++;
s0 = "";
} else if ((byte) (variabl2581.charAt(i)) != 13)
s0 = s0 + variabl2581.substring(i, i + 1);
}
for (int i = 0; i < variabl2569; i++) {
s0 = list1.get(i);
variabl2703 = "";
variabl26510 = 0;
if (s0.length() > 1) {
for (int j = 0; j < s0.length(); j++) {
if (((byte) (variabl2581.charAt(j)) < 19)
|| (j == s0.length() - 1)) {
if (j == s0.length() - 1)
variabl2703 = variabl2703
+ s0.substring(j, j + 1);
variabl2615[variabl26510] = variabl2703;
variabl26510++;
variabl2703 = "";
} else {
variabl2703 = variabl2703
+ s0.substring(j, j + 1);
}
}
variabl1965.addRow(variabl2615);
variabl1853++;
variabl26510 = 0;
}
}
File variabl1493 = new File(variabl1015);
ActiveXComponent word = new ActiveXComponent(
"Word.Application");
Dispatch documents = word.getProperty("Documents")
.toDispatch();
try {
Dispatch doc = Dispatch.call(documents, "Add")
.toDispatch();
Dispatch selection = Dispatch.get(word, "Selection")
.toDispatch();
Dispatch.call(selection, "HomeKey");
Dispatch tables = Dispatch.get(doc, "Tables")
.toDispatch();
Dispatch range = Dispatch.get(selection, "Range")
.toDispatch();
Dispatch newTable = Dispatch.call(tables, "Add", range,
new Variant(variabl1853),
new Variant(variabl2113)).toDispatch();
for (int i1 = 0; i1 < variabl1965.getRowCount(); i1++) {
for (int j = 0; j < variabl2113; j++) {
Dispatch table = Dispatch.call(tables, "Item",
new Variant(1)).toDispatch();
Dispatch cell = Dispatch
.call(table, "Cell",
new Variant(i1 + 1),
new Variant(j + 1))
.toDispatch();
Dispatch.call(cell, "Select");
Dispatch.put(selection, "Text", variabl1965
.getValueAt(i1, j).toString());
}
}
Dispatch.call(
(Dispatch) Dispatch.call(word, "WordBasic")
.getDispatch(), "FileSaveAs",
variabl1015);
} catch (Exception e1) {
e1.printStackTrace();
} finally {
Dispatch.call(word, "Quit");
}
} catch (Exception e1) {
e1.printStackTrace();
}
return;
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",1,") >= 0)) {
variabl1149.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl1149);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl1017 = new JButton("到Excel文件");
variabl1017.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
HSSFWorkbook book = new HSSFWorkbook();
HSSFSheet sheet = book.createSheet(variabl2603);
HSSFRow header = sheet.createRow(0);
int colCount = variabl2113;
for (int i = 0; i < variabl2113; i++) {
HSSFCell cell = header.createCell(i);
cell.setCellValue(new HSSFRichTextString(variabl1913[i]));
}
for (int j = 0; j < variabl1853; j++) {
HSSFRow row = sheet.createRow(j);
for (int i = 0; i < colCount; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(new HSSFRichTextString(
variabl2197[j][i]));
}
}
try {
FileOutputStream fileO = new FileOutputStream(variabl1003);
book.write(fileO);
fileO.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",2,") >= 0)) {
variabl1017.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl1017);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl1061 = new JButton("加到Excel");
variabl1061.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (variabl1003.length() == 0)
variabl1003 = JOptionPane.showInputDialog(
"请输入导入文件完整路径 例如:F:\\java.xls", "");
InputStream is = null;
HSSFWorkbook wbWorkbook = null;
try {
is = new FileInputStream(variabl1003);
wbWorkbook = new HSSFWorkbook(is);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, "读取文件失败,请检查路径是否正确!",
"错误", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException e2) {
e2.printStackTrace();
}
HSSFSheet sheet = wbWorkbook.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
int variabl1157 = sheet.getPhysicalNumberOfRows();
HSSFRow row = sheet.getRow(1);
int variabl1185 = row.getPhysicalNumberOfCells();
if (variabl1185 != variabl2113)
JOptionPane.showMessageDialog(null,
"原文件中数据结构与数据表不同,不能坐添加式导出!");
String[] val;
String value = "";
for (int i = 0; i < variabl1157; i++) {
row = sheet.getRow(i);
if (row != null) {
for (int j = 0; j < variabl1185; j++) {
HSSFCell cell = row.getCell(j);
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value += cell.getNumericCellValue() + ",";
break;
case HSSFCell.CELL_TYPE_STRING:
value += cell.getStringCellValue() + ",";
break;
default:
value += "0";
break;
}
}
}
val = value.split(",");
variabl1965.addRow(val);
value = "";
}
}
HSSFWorkbook book = new HSSFWorkbook();
sheet = book.createSheet(variabl2603);
HSSFRow header = sheet.createRow(0);
int colCount = variabl2113;
for (int i = 0; i < variabl2113; i++) {
HSSFCell cell = header.createCell(i);
cell.setCellValue(new HSSFRichTextString(variabl1913[i]));
}
for (int j = 0; j < variabl1965.getRowCount(); j++) {
row = sheet.createRow(j);
for (int i = 0; i < colCount; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(new HSSFRichTextString(variabl1965
.getValueAt(j, i).toString()));
}
}
try {
FileOutputStream fileO = new FileOutputStream(variabl1003);
book.write(fileO);
fileO.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",3,") >= 0)) {
variabl1061.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl1061);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl2225 = new JButton("标准格式");
variabl2225.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
File file = new File(variabl1463);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fs = new FileOutputStream(file);
for (int j1 = 0; j1 < variabl1853; j1++) {
for (int j2 = 0; j2 < variabl2113; j2++) {
fs.write((variabl2197[j1][j2] + s3).substring(0,
variabl1119[j2]).getBytes());
}
fs.write(("" + x1).getBytes());
}
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",4,") >= 0)) {
variabl2225.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl2225);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl1847 = new JButton("紧凑格式");
variabl1847.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String variabl2511 = ",bit,smallint,integer,int,tinyint,real,money,smallmoney,bigint,"
+ "float,double,numeric,";
try {
File file = new File(variabl1463);
if (!file.exists()) {
file.createNewFile();
}
int length = 0;
FileOutputStream fs = new FileOutputStream(file);
for (int j1 = 0; j1 < variabl1853; j1++) {
for (int j2 = 0; j2 < variabl2113; j2++)
if (j2 < (variabl2113 - 1))
if (variabl2511.lastIndexOf(variabl1169[j2]) >= 0)
fs.write((variabl2197[j1][j2] + x4)
.getBytes());
else
fs.write((x3 + variabl2197[j1][j2] + x3 + x4)
.getBytes());
else
fs.write((x3 + variabl2197[j1][j2] + x3)
.getBytes());
fs.write(("" + x1).getBytes());
}
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",5,") >= 0)) {
variabl1847.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl1847);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl1403 = new JButton("自定义格式");
variabl1403.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
File file = new File(variabl1463);
if (!file.exists()) {
file.createNewFile();
}
int length = 0;
String x5 = JOptionPane.showInputDialog("请输入字段与字段间分隔符", "");
FileOutputStream fs = new FileOutputStream(file);
for (int j1 = 0; j1 < variabl1853; j1++) {
for (int j2 = 0; j2 < variabl2113; j2++)
if (j2 < (variabl2113 - 1))
fs.write((variabl2197[j1][j2] + x5).getBytes());
else
fs.write(variabl2197[j1][j2].getBytes());
fs.write(("" + x1).getBytes());
}
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",6,") >= 0)) {
variabl1403.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl1403);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl1163 = new JButton("到XML文件");
variabl1163.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
File file = new File(variabl1033);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fs = new FileOutputStream(file);
fs.write(("<?xml version=" + x3 + "1.0" + x3 + " encoding="
+ x3 + "GB2312" + x3 + "?>").getBytes());
fs.write(("<Title>").getBytes());
for (int j1 = 0; j1 < variabl1853; j1++) {
fs.write((" <" + variabl2603 + ">").getBytes());
for (int j2 = 0; j2 < variabl2113; j2++) {
s2 = " <" + variabl1913[j2] + "> "
+ variabl2197[j1][j2] + " </"
+ variabl1913[j2] + ">";
fs.write(s2.getBytes());
}
fs.write((" </" + variabl2603 + ">").getBytes());
}
fs.write(("</Title>").getBytes());
fs.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",7,") >= 0)) {
variabl1163.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl1163);
variabl1423 = variabl1423 + variabl2339;
}
JButton variabl1245 = new JButton("到PDF文件");
variabl1245.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Document document = new Document();
try {
PdfWriter.getInstance(document, new FileOutputStream(
variabl1031));
document.open();
BaseFont bfComic = BaseFont.createFont(
"c:\\windows\\fonts\\SIMFANG.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font font = new Font(bfComic, 14);
for (int i = 0; i < variabl1853; i++) {
String s1 = "";
;
for (int j = 0; j < variabl2197[0].length; j++)
s1 = s1 + variabl2197[i][j] + " ";
document.add(new Paragraph(s1, font));
}
} catch (DocumentException de) {
System.err.println(de.getMessage());
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",8,") >= 0)) {
variabl1245.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(variabl1245);
variabl1423 = variabl1423 + variabl2339;
}
JButton exitButton = new JButton("退 出");
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
frame.dispose();
}
});
if ((variabl1187.length() < 3) || (variabl1187.lastIndexOf(",9,") >= 0)) {
exitButton.setBounds(variabl1423, variabl2503 - 120,
variabl2339 - 5, 20);
frame.add(exitButton);
variabl1423 = variabl1423 + variabl2339;
}
frame.setVisible(true);
}
}
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-19 22:07
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社