mainframe.java
来自「导出ORACLE数据库对象DDL语句的程序」· Java 代码 · 共 663 行 · 第 1/2 页
JAVA
663 行
package com.icbcsdc.ddlexp.ui;
import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import javax.swing.UIManager;
import javax.swing.border.Border;
import pv.jfcx.JPVButton;
import pv.jfcx.PVNode;
import com.icbcsdc.ddlexp.pub.staticLog.Logger;
import com.icbcsdc.ddlexp.pub.util.ConfigFile;
import com.icbcsdc.ddlexp.pub.util.FileDb;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLDatabase;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLManager;
import com.icbcsdc.ddlexp.pub.xml.nodeinfo.XMLNode;
import com.icbcsdc.ddlexp.ui.dialog.MainFrameAboutBox;
import com.icbcsdc.ddlexp.ui.rightPanel.RightPanel;
/**
*
* 主窗口类
*
*/
public class MainFrame extends TreeFrame implements ActionListener {
public MyTree selectedTreeView=null;
/**
* 本Frame的Panel
*/
private JPanel contentPane;
/**
* 窗体的菜单栏
*/
private JMenuBar myMenuBar = new JMenuBar();
/**
* File菜单
*/
private JMenu jMenuFile = new JMenu();
/**
* 退出菜单项
*/
private JMenuItem jMenuFileExit = new JMenuItem();
/**
* 帮助菜单
*/
private JMenu jMenuHelp = new JMenu();
/**
* 弹出about对话框的菜单项
*/
private JMenuItem jMenuHelpAbout = new JMenuItem();
/**
* 窗体的工具栏
*/
private JToolBar jToolBar = new JToolBar();
/**
* 窗体的工具栏按钮
*/
private JButton btnRefresh = new JButton();
/**
* 窗体的工具栏按钮
*/
private JButton btnHelp = new JButton();
/**
* 用户管理按钮图标
*/
// private ImageIcon usermanagerImage=null;
/**
* 图标
*/
private ImageIcon refreshImage=null;
/**
* 图标
*/
private ImageIcon helpImage=null;
/**
* 窗体边框
*/
private Border mainFrmBorder=null;
private File expFile = null;
/**
* 窗体的状态栏
*/
private JToolBar statusBar = new JToolBar();
private JLabel blankHeader =new JLabel(" ");
private JLabel statusHeader=new JLabel(" ");
private JLabel statusInfo =new JLabel(" ");
private BorderLayout mainFrmBorderLayout = new BorderLayout();
private JSplitPane splitPane = new JSplitPane();
private FlowLayout flwLayout = new FlowLayout();
private JEditorPane editPane = new JEditorPane();
private JPVButton jpvbutton=null;
private javax.swing.Timer m_run;
/**
* 窗体左边树的容器
*/
protected MyTree treeView;
/**
* 窗体右边的容器
*/
protected JScrollPane jsp = new JScrollPane();
//XMLManager manager=null;
/**
* Construct the frame
*/
public MainFrame() {
try {
//manager= new XMLManager();
jbInit();
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
} catch (Exception e) {
Logger.log(Logger.ERROR,e.getMessage());
//e.printStackTrace();
}
}
static private MainFrame instance=null; // 唯一实例
/**
* 返回唯一实例.如果是第一次调用此方法,则创建实例
* @return JDBCPoolManager 唯一实例
*/
static synchronized public MainFrame getInstance() {
if (instance == null) {
instance = new MainFrame();
}
return instance;
}
/**
* @throws Exception
* 窗体初始化
*/
private void jbInit() throws Exception {
/**设置图标*/
refreshImage = new ImageIcon("img/refresh18.gif");
helpImage = new ImageIcon("img/help.gif");
setIconImage(new ImageIcon("img/console1.gif").getImage());
/**设置边框和布局*/
mainFrmBorder = BorderFactory.createEtchedBorder(SystemColor.desktop, SystemColor.activeCaptionBorder);
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(mainFrmBorderLayout);
/**树的生成*/
this.constructTree();
jpvbutton = new pv.jfcx.JPVButton("") {
pv.shape.Cube m_cube = new pv.shape.Cube(45, 20, null);
protected Rectangle drawTextAndImage(Graphics g, int x, int y,
int w, int h) {
Rectangle r = super.drawTextAndImage(g, x, y, w, h);
//-----------------
// rotate cube on every paint
m_cube.x = x + 1;
m_cube.y = y + 1;
m_cube.lines = Color.gray;
double speed = 1;
if (isFlat())
speed /= 4.0;
else if (getPressed())
speed = -speed;
m_cube.angleX += speed * 6.0;
m_cube.angleY += speed;
m_cube.angleZ += speed;
m_cube.paint(g);
return r;
}
};
jpvbutton.setOpaque(true);
jpvbutton.setCanKeepPressed(false);
jpvbutton.setCanGetFocus(false);
jpvbutton.setFocusRect((6 & 1) == 0);
jpvbutton.setTextPressed("");
jpvbutton.setText3D(-1, -1);
jpvbutton.setThreeButtonStates(true);
myMenuBar.add(jpvbutton);
jpvbutton.setBounds(0, 0, 25, 25);
/**设置菜单*/
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(new Dimension(screenSize.width, screenSize.height));
this.setTitle("DDLExp");
jMenuFile.setText("File");
jMenuFileExit.setText("Exit");
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuFile.add(jMenuFileExit);
jMenuHelp.add(jMenuHelpAbout);
myMenuBar.setLayout(new GridLayout(1, 20));
myMenuBar.add(jMenuFile);
myMenuBar.add(jMenuHelp);
JPanel j1 = new JPanel();
myMenuBar.add(j1);
JPanel j2 = new JPanel();
myMenuBar.add(j2);
JPanel j3 = new JPanel();
myMenuBar.add(j3);
JPanel j4 = new JPanel();
myMenuBar.add(j4);
JPanel j5 = new JPanel();
myMenuBar.add(j5);
JPanel j6 = new JPanel();
myMenuBar.add(j6);
JPanel j7 = new JPanel();
myMenuBar.add(j7);
JPanel j8 = new JPanel();
myMenuBar.add(j8);
JPanel j9 = new JPanel();
myMenuBar.add(j9);
JPanel j10 = new JPanel();
myMenuBar.add(j10);
JPanel j11 = new JPanel();
myMenuBar.add(j11);
JPanel j12 = new JPanel();
myMenuBar.add(j12);
JPanel j13 = new JPanel();
myMenuBar.add(j13);
JPanel j14 = new JPanel();
myMenuBar.add(j14);
JPanel j15 = new JPanel();
this.setJMenuBar(myMenuBar);
/**设置按钮*/
btnRefresh.setIcon(refreshImage);
btnRefresh.setToolTipText("Refresh");
btnHelp.setIcon(helpImage);
btnHelp.setToolTipText("Help");
/**将各种对象添加到主窗口中*/
/**添加按钮栏*/
jToolBar.setOrientation(JToolBar.VERTICAL);
jToolBar.add(btnRefresh);
jToolBar.add(btnHelp);
jToolBar.setBackground(Color.lightGray);
contentPane.add(jToolBar, BorderLayout.WEST);
/**设置状态栏*/
statusBar.setOrientation(JToolBar.HORIZONTAL);
statusBar.setPreferredSize(new Dimension(40,25));
statusBar.add(blankHeader);
statusBar.add(statusHeader);
statusBar.add(statusInfo);
contentPane.add(statusBar, BorderLayout.SOUTH);
/**设置主显示栏*/
contentPane.add(splitPane, BorderLayout.CENTER);
contentPane.setBackground(Color.lightGray);
contentPane.setBorder(mainFrmBorder);
//设置左面树面板的边框
splitPane.setBackground(Color.lightGray);
splitPane.setDividerSize(5);
//分裂框中间条的位置
splitPane.setDividerLocation(GlobalParameters.TREE_WIDTH);
//添加左面树面板
splitPane.add(treeView, JSplitPane.LEFT);
//添加右边内容显示面板
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
jsp.setViewportBorder(BorderFactory.createEtchedBorder());
splitPane.add(jsp, JSplitPane.RIGHT);
// jsp.getViewport().set
//添加其它监听事件
addListner();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?