📄 frameofdict.java~33~
字号:
selectRow01 = selectRow01 - count01;
String valueOfTable01 = table01.getValueAt(selectRow01, 0).toString();
if (tableName.compareTo(valueOfTable01) == 0)
break;
}
table01.setRowSelectionInterval(selectRow01, selectRow01);
rowBeSelected01 = selectRow01;
int index02 = rowBeSelected02;
int count02 = table02.getRowCount();
if(rowBeSelected02 >= count02) {//防止在table02中选中不存在的多余字段
rowBeSelected02 = 0;
index02 = rowBeSelected02;
}
for (int i = 1; i <= count02; i++) {//从当前选中的字段的下一个字段开始寻找,遍历table02全表一遍
selectRow02 = index02 + i;
if(selectRow02 >= count02)
selectRow02 = selectRow02 - count02;
String valueOfTable02 = table02.getValueAt(selectRow02, 1).toString();
if (commentValue.compareTo(valueOfTable02) == 0)
break;
}
table02.setRowSelectionInterval(selectRow02, selectRow02);
rowBeSelected02 = selectRow02;
}
if(flag == true)//如果已经寻找到所求字段,则推出此次查找
break;
c ++;
}
if(flag == false) {
JOptionPane.showMessageDialog(subframe, "没有找到所要查找的字段!");
}
}
});
menu.add(menuItem);
//----------------------------
menuItem = new JMenuItem("当前表查找字段名注释",KeyEvent.VK_T);
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame subframe = new JFrame();
JOptionPane optionPane = new JOptionPane();
if(fileName == " ") {
JOptionPane.showMessageDialog(subframe, "不存在可查询的表!");
return;
}
String commentValue = (String) optionPane.showInputDialog(subframe,
"只对当前表进行检索,可查找该表内的重复字段。 \n"+
" 输入所要查找字段名注释:",
"查找字段名注释",
JOptionPane.QUESTION_MESSAGE);
Vector allTables = new Vector();
allTables = dict.collectTable(fileName);
Vector tableValue = new Vector();
tableValue = (Vector)allTables.elementAt(rowBeSelected01);
String tableName = tableValue.elementAt(0).toString();
int selectRow02 = 0;
boolean flag = false;
if (dict.findColumnComment(fileName,tableName,commentValue)) {
flag = true;
int index02 = rowBeSelected02;
int count02 = table02.getRowCount();
if(rowBeSelected02 >= count02) {//防止在table02中选中不存在的多余字段
rowBeSelected02 = 0;
index02 = rowBeSelected02;
}
for (int i = 1; i <= count02; i++) {//从当前选中的字段的下一个字段开始寻找,遍历table02全表一遍
selectRow02 = index02 + i;
if(selectRow02 >= count02)
selectRow02 = selectRow02 - count02;
String valueOfTable02 = table02.getValueAt(selectRow02, 1).toString();
if (commentValue.compareTo(valueOfTable02) == 0)
break;
}
table02.setRowSelectionInterval(selectRow02, selectRow02);
rowBeSelected02 = selectRow02;
}
if(flag == false) {
JOptionPane.showMessageDialog(subframe, "没有找到所要查找的字段!");
}
}
});
menu.add(menuItem);
//----------------------------
menuBar.add(menu);
//----------------------------------------------------------------------
menu = new JMenu("帮助");
//----------------------------
menuItem = new JMenuItem("关于...",KeyEvent.VK_T);
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame subframe = new JFrame();
JOptionPane optionPane = new JOptionPane();
optionPane.showMessageDialog(subframe, "数据字典 \n"
+" 1.连接数据库,并读入数据库文件,对数据库文件形成可查询的数据字典。\n "
+"2.连接到数据库时,用户将自己保证数据库名字等信息的正确性。 \n"
+" 3.已连接的数据库,可对其创建数据字典,如果字典已经存在,将覆盖旧字典。 \n"
+" 4.已连接到数据库时,可直接打开该数据库对应已存在的字典。 \n"
+" 4.未连接到数据库时,用户可打开确实已经存在的字典,此时用户自己确定字典名字。 \n"
+" 6.对打开的字典,用户可以查询。对映射名字的修改将保存。不允许修改表名及字段名。 \n"
+"Version: 1.0 \n");
}
});
menu.add(menuItem);
//----------------------------
menuBar.add(menu);
//----------------------------------------------------------------------
setJMenuBar(menuBar);
}
/**
*以一个JTable组件的形式,显示在table02中指定名字的表中所有字段属性。
*/
public void showAttributesInTable02(String tableName) {
if(fileName == null||fileName == " ")
return;
if(tableName == null)
return;
Vector columnNames = new Vector();
columnNames.addElement("字段名");
columnNames.addElement("注释");
columnNames.addElement("字段类型");
columnNames.addElement("字段长度");
columnNames.addElement("是否允许空值");
Vector dataOfColumn = dict.collectColumn(fileName,tableName);
table02 = new JTable(dataOfColumn, columnNames);
table02.setAutoResizeMode(0);
TableColumn column = null;//设置列宽度
column = table02.getColumnModel().getColumn(0);
column.setPreferredWidth(120);
column = table02.getColumnModel().getColumn(1);
column.setPreferredWidth(90);
column = table02.getColumnModel().getColumn(2);
column.setPreferredWidth(90);
column = table02.getColumnModel().getColumn(3);
column.setPreferredWidth(60);
column = table02.getColumnModel().getColumn(4);
column.setPreferredWidth(50);
column = table02.getColumnModel().getColumn(0);//禁止用户修改第一列
column.setCellEditor(new TableCellEditor () {
public Object getCellEditorValue() {
return null;
}
public boolean isCellEditable(EventObject anEvent) {
return false;
}
public boolean shouldSelectCell(EventObject anEvent) {
return false;
}
public boolean stopCellEditing() {
return false;
}
public void cancelCellEditing() {
}
public void addCellEditorListener(CellEditorListener l) {
}
public void removeCellEditorListener(CellEditorListener l) {
}
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int column) {
return null;
}
});
scrollPanel02.getViewport().setView(table02);
table02.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListSelectionModel rowSM = table02.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
rowBeSelected02 = table02.getSelectedRow();
}
});
table02.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
int row = e.getFirstRow();
int column = e.getColumn();
if(column == 1){
TableModel model = (TableModel) e.getSource();
String commentValue = model.getValueAt(row, column).toString();
String tableName = table01.getValueAt(rowBeSelected01,0).toString();
String columnName = model.getValueAt(row, 0).toString();
dict.setColumnComment(fileName,tableName,columnName,commentValue);
}
}
});
}
/**
*将所连接到的数据库的名字转化为对应XML文档的名字。
*/
public String convertName(String databaseName) {
String fileName = "";
boolean isStringEmpty = true;
int c = 0;
if(databaseName != null)
while(c < databaseName.length()) {
if(databaseName.charAt(c) != ':'
&databaseName.charAt(c) != '.'
&databaseName.charAt(c) != '@') {
fileName = fileName + databaseName.charAt(c);
} else {
fileName = fileName + "_";
}
c++;
}
return fileName + ".xml";
}
/**
*初始函数。
*/
private void jbInit() throws Exception {
getContentPane().setLayout(new BorderLayout());
}
}
/**
* 保证打开文件只能是".xml"后缀
*/
class XMLFilter extends FileFilter {
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
String fileName = f.getName();
int lenth = fileName.length();
String extension = " ";
extension = fileName.substring(lenth - 4,lenth);
if (extension != null) {
if (extension.equals(".xml")) {
return true;
} else {
return false;
}
}
return false;
}
//The description of this filter
public String getDescription() {
return ".xml文件";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -