⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frameofdict.java~31~

📁 读取Oracle数据库中的所有表
💻 JAVA~31~
📖 第 1 页 / 共 4 页
字号:
package datadictionary;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.SQLException;
import java.util.EventObject;
import java.util.Vector;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.io.File;
import javax.swing.filechooser.FileFilter;



import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.awt.GridLayout;
import java.awt.Dimension;
////////////////////////////////////////////////////////////////////////////////
public class FrameOfDict extends JFrame {
    private DataDictionary dict = new DataDictionary();
    private String fileName = " ";
    private JMenuBar menuBar;
    private JMenu menu;
    private JMenuItem menuItem;
    private JTable table01,table02;
    private JPanel panel;
    private JScrollPane scrollPanel01,scrollPanel02;
    private int rowBeSelected01 = 0;//记录table01中当前被选择的行数
    private int rowBeSelected02 = 0;//记录table02中当前被选择的行数

    private JTextField textField01 = null;
    private JTextField textField02 = null;
    private JTextField textField03 = null;
    private JTextField textField04 = null;
    private JTextField textField05 = null;
    private JTextField textField06 = null;
    private JTextField textField07 = null;

    /**
     *数据字典的界面部分,显示一个Frame组件。
     *其中主要包括显示表名的List组件和显示字段属性的Table组件。
     */
    public FrameOfDict() {
        super("数据字典");
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }

        panel = new JPanel();//创建panel,容纳table01及table02
        panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));
        scrollPanel01 = new JScrollPane();
        scrollPanel02 = new JScrollPane();
        scrollPanel01.getPreferredSize();
        scrollPanel02.getPreferredSize();
        panel.add(scrollPanel01);
        panel.add(scrollPanel02);

        showMenu();

        add(panel);
        pack();
        setSize(650,240);
        setVisible(true);

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    /**
     *显示菜单,并主要实现菜单的各项功能。
     *字典功能的主要部分。
     */
    public void showMenu() {
        menuBar = new JMenuBar();
        //----------------------------------------------------------------------
        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();
                if(fileName != " ") {
                    Vector columnNameOfTables = new Vector();//创建左边的table01
                    columnNameOfTables.addElement("表名");
                    columnNameOfTables.addElement("注释");
                    columnNameOfTables.addElement("表类型");
                    columnNameOfTables.addElement("主键名");

                    Vector indexOfTables = dict.collectTable(fileName);
                    table01 = new JTable(indexOfTables,columnNameOfTables);
                    table01.setAutoResizeMode(0);
                    TableColumn column = null;//设置列宽度
                    column = table01.getColumnModel().getColumn(0);
                    column.setPreferredWidth(120);
                    column = table01.getColumnModel().getColumn(1);
                    column.setPreferredWidth(120);
                    column = table01.getColumnModel().getColumn(2);
                    column.setPreferredWidth(100);
                    column = table01.getColumnModel().getColumn(3);
                    column.setPreferredWidth(140);

                    column = table01.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;
                        }
                    });
                    scrollPanel01.getViewport().setView(table01);

                    table01.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
                    ListSelectionModel rowSM = table01.getSelectionModel();
                    rowSM.addListSelectionListener(new ListSelectionListener() {
                        public void valueChanged(ListSelectionEvent e) {
                            int row = table01.getSelectedRow();
                            rowBeSelected01 = row;
                            String tableName = table01.getValueAt(row,0).toString();
                            showAttributesInTable02(tableName);
                            repaint();
                        }
                    });
                    table01.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 = model.getValueAt(row, 0).
                                                     toString();
                                dict.setTableComment(fileName,tableName,commentValue);
                            }
                        }
                    });
                    return;
                }
                /*
                String fileNameTemp = (String)optionPane.showInputDialog(subframe,
                                                              "输入所要打开文档的名字:",
                                                              "打开文档",
                                                              JOptionPane.QUESTION_MESSAGE);
*/
                String fileNameTemp = " ";
                JFileChooser fileChooser = new JFileChooser();
                fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

                ////////////////////////////////////////////////////////////
                fileChooser.setAcceptAllFileFilterUsed(false);

                fileChooser.addChoosableFileFilter(new XMLFilter());


                //////////////////////////////////////////////////////////////




                int returnVal = fileChooser.showOpenDialog(subframe);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    File file = fileChooser.getSelectedFile();
                    fileNameTemp = file.getName();
                }

                boolean isStringEmpty = true;
                int c = 0;
                if(fileNameTemp != null)//用以判断输入的名字是否为空
                    while(c < fileNameTemp.length()) {
                        if(fileNameTemp.charAt(c) != ' ')
                            isStringEmpty = false;
                        c++;
                    }
                if(fileNameTemp == null||isStringEmpty) {//名字为空则退出打开文档的过程
                    JOptionPane.showMessageDialog(subframe, "文档名字不能为空!");
                    return;
                }
//////////////////////////=====================;;
                //fileNameTemp = "exam.xml";//测试用
////////////////========////////===================9
                Vector columnNameOfTables = new Vector();//创建左边的table01
                columnNameOfTables.addElement("表名");
                columnNameOfTables.addElement("注释");
                columnNameOfTables.addElement("表类型");
                columnNameOfTables.addElement("主键名");

                Vector indexOfTables = dict.collectTable(fileNameTemp);
                if(indexOfTables != null)
                    fileName = fileNameTemp;
                table01 = new JTable(indexOfTables,columnNameOfTables);
                table01.setAutoResizeMode(0);
                TableColumn column = null;//设置列宽度
                column = table01.getColumnModel().getColumn(0);
                column.setPreferredWidth(120);
                column = table01.getColumnModel().getColumn(1);
                column.setPreferredWidth(120);
                column = table01.getColumnModel().getColumn(2);
                column.setPreferredWidth(100);
                column = table01.getColumnModel().getColumn(3);
                column.setPreferredWidth(140);

                column = table01.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,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -