亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? console.java

?? 非常棒的java數據庫
?? JAVA
字號:
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.tools;

//#ifdef AWT
import java.awt.Button;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GraphicsEnvironment;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Label;
import java.awt.MenuItem;
import java.awt.Panel;
import java.awt.PopupMenu;
import java.awt.SystemColor;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import org.h2.util.IOUtils;

import java.io.IOException;
import java.io.InputStream;
//#endif
import java.sql.SQLException;

import org.h2.constant.SysProperties;
import org.h2.server.ShutdownHandler;
import org.h2.util.StartBrowser;

/**
 * This tool starts the H2 Console (web-) server, as well as the TCP and PG
 * server. For JDK 1.6, a system tray icon is created, for platforms that
 * support it. Otherwise, a small window opens.
 * 
 * @author Thomas Mueller, Ridvan Agar
 */
public class Console implements
//#ifdef AWT
ActionListener, MouseListener,
//#endif
ShutdownHandler {

//#ifdef AWT
    private Font font;
    private Image icon16, icon24;
    private Frame frame;
    private Button startBrowser;
//#endif
    private static final int EXIT_ERROR = 1;
    private Server web, tcp, pg;
    private boolean isWindows;

    /**
     * The command line interface for this tool.
     * The command line options are the same as in the Server tool,
     * but this tool will always start the TCP, TCP and PG server.
     * Options are case sensitive.
     *
     * @param args the command line arguments
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        int exitCode = new Console().run(args);
        if (exitCode != 0) {
            System.exit(exitCode);
        }
    }

    private int run(String[] args) {
        isWindows = SysProperties.getStringSetting("os.name", "").startsWith("Windows");
        int exitCode = 0;
        try {
            web = Server.createWebServer(args);
            web.setShutdownHandler(this);
            web.start();
        } catch (SQLException e) {
            if (web == null) {
                e.printStackTrace();
            } else {
                System.out.println(web.getStatus());
            }
        }
        try {
            tcp = Server.createTcpServer(args);
            tcp.start();
        } catch (SQLException e) {
            if (tcp == null) {
                e.printStackTrace();
            } else {
                System.out.println(tcp.getStatus());
            }
        }
        try {
            pg = Server.createPgServer(args);
            pg.start();
        } catch (SQLException e) {
            if (pg == null) {
                e.printStackTrace();
            } else {
                System.out.println(pg.getStatus());
            }
        }
//#ifdef AWT
        if (!GraphicsEnvironment.isHeadless()) {
            if (isWindows) {
                font = new Font("Dialog", Font.PLAIN, 11);
            } else {
                font = new Font("Dialog", Font.PLAIN, 12);
            }
            try {
                icon16 = loadImage("/org/h2/res/h2.png");
                icon24 = loadImage("/org/h2/res/h2b.png");
                if (!createTrayIcon()) {
                    showWindow(true);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
//#endif

        // start browser anyway (even if the server is already running)
        // because some people don't look at the output,
        // but are wondering why nothing happens
        StartBrowser.openURL(web.getURL());
        if (!web.isRunning()) {
            exitCode = EXIT_ERROR;
        }
        return exitCode;
    }

    private Image loadImage(String name) throws IOException {
        InputStream in = Console.class.getResourceAsStream(name);
        if (in != null) {
            byte[] imageData = IOUtils.readBytesAndClose(in, -1);
            return Toolkit.getDefaultToolkit().createImage(imageData);
        }
        return null;
    }

    /**
     * INTERNAL
     */
    public void shutdown() {
        stopAll();
    }

    private void stopAll() {
        if (web != null && web.isRunning()) {
            web.stop();
            web = null;
        }
        if (tcp != null && tcp.isRunning()) {
            tcp.stop();
            tcp = null;
        }
        if (pg != null && pg.isRunning()) {
            pg.stop();
            pg = null;
        }
//#ifdef AWT
        if (frame != null) {
            frame.dispose();
            frame = null;
        }
//#endif
        System.exit(0);
    }

//#ifdef AWT
    private boolean createTrayIcon() {
        try {
            // SystemTray.isSupported();
            Boolean supported = (Boolean) Class.forName("java.awt.SystemTray").
                getMethod("isSupported", new Class[0]).
                invoke(null, new Object[0]);

            if (!supported.booleanValue()) {
                return false;
            }

            PopupMenu menuConsole = new PopupMenu();
            MenuItem itemConsole = new MenuItem("H2 Console");
            itemConsole.setActionCommand("console");
            itemConsole.addActionListener(this);
            itemConsole.setFont(font);
            menuConsole.add(itemConsole);
            MenuItem itemStatus = new MenuItem("Status");
            itemStatus.setActionCommand("status");
            itemStatus.addActionListener(this);
            itemStatus.setFont(font);
            menuConsole.add(itemStatus);
            MenuItem itemExit = new MenuItem("Exit");
            itemExit.setFont(font);
            itemExit.setActionCommand("exit");
            itemExit.addActionListener(this);
            menuConsole.add(itemExit);

            // SystemTray tray = SystemTray.getSystemTray();
            Object tray = Class.forName("java.awt.SystemTray").
                getMethod("getSystemTray", new Class[0]).
                invoke(null, new Object[0]);

            // Dimension d = tray.getTrayIconSize();
            Dimension d = (Dimension) Class.forName("java.awt.SystemTray").
                getMethod("getTrayIconSize", new Class[0]).
                invoke(tray, new Object[0]);

            Image icon = (d.width >= 24 && d.height >= 24) ? icon24 : icon16;

            // TrayIcon icon = new TrayIcon(image, "H2 Database Engine", menuConsole);
            Object trayIcon = Class.forName("java.awt.TrayIcon").
                getConstructor(new Class[] { Image.class, String.class, PopupMenu.class }).
                newInstance(new Object[] { icon, "H2 Database Engine", menuConsole });

            // trayIcon.addMouseListener(this);
            trayIcon.getClass().
                 getMethod("addMouseListener", new Class[]{MouseListener.class}).
                 invoke(trayIcon, new Object[]{this});

             // tray.add(icon);
             tray.getClass().
                getMethod("add", new Class[] { Class.forName("java.awt.TrayIcon") }).
                invoke(tray, new Object[] { trayIcon });

             return true;
        } catch (Exception e) {
            return false;
        }
    }

    private void showWindow(final boolean exit) {
        frame = new Frame("H2 Console");
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent we) {
                if (exit) {
                    stopAll();
                } else {
                    frame.dispose();
                }
            }
        });
        if (icon16 != null) {
            frame.setIconImage(icon16);
        }
        frame.setResizable(false);
        frame.setBackground(SystemColor.control);

        GridBagLayout layout = new GridBagLayout();
        frame.setLayout(layout);

        // the main panel keeps everything together
        Panel mainPanel = new Panel(layout);

        GridBagConstraints constraintsPanel = new GridBagConstraints();
        constraintsPanel.gridx = 0;
        constraintsPanel.weightx = 1.0D;
        constraintsPanel.weighty = 1.0D;
        constraintsPanel.fill = GridBagConstraints.BOTH;
        constraintsPanel.insets = new Insets(0, 10, 0, 10);
        constraintsPanel.gridy = 0;

        GridBagConstraints constraintsButton = new GridBagConstraints();
        constraintsButton.gridx = 0;
        constraintsButton.gridwidth = 2;
        constraintsButton.insets = new Insets(10, 0, 0, 0);
        constraintsButton.gridy = 1;
        constraintsButton.anchor = GridBagConstraints.EAST;

        GridBagConstraints constraintsTextField = new GridBagConstraints();
        constraintsTextField.fill = GridBagConstraints.HORIZONTAL;
        constraintsTextField.gridy = 0;
        constraintsTextField.weightx = 1.0;
        constraintsTextField.insets = new Insets(0, 5, 0, 0);
        constraintsTextField.gridx = 1;

        GridBagConstraints constraintsLabel = new GridBagConstraints();
        constraintsLabel.gridx = 0;
        constraintsLabel.gridy = 0;

        Label label = new Label("H2 Console URL:", Label.LEFT);
        label.setFont(font);
        mainPanel.add(label, constraintsLabel);

        TextField text = new TextField();
        text.setEditable(false);
        text.setFont(font);
        text.setText(web.getURL());
        if (isWindows) {
            text.setFocusable(false);
        }
        mainPanel.add(text, constraintsTextField);

        startBrowser = new Button("Start Browser");
        startBrowser.setFocusable(false);
        startBrowser.setActionCommand("console");
        startBrowser.addActionListener(this);
        startBrowser.setFont(font);
        mainPanel.add(startBrowser, constraintsButton);
        frame.add(mainPanel, constraintsPanel);

        int width = 300, height = 120;
        frame.setSize(width, height);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((screenSize.width - width) / 2, (screenSize.height - height) / 2);
        try {
            frame.setVisible(true);
        } catch (Throwable t) {
            // ignore
            // some systems don't support this method, for example IKVM
            // however it still works
        }
    }

    private void startBrowser() {
        if (web != null) {
            StartBrowser.openURL(web.getURL());
        }
    }
//#endif

    /**
     * INTERNAL
     */
//#ifdef AWT
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();
        if ("exit".equals(command)) {
            stopAll();
        } else if ("console".equals(command)) {
            startBrowser();
        } else if ("status".equals(command)) {
            showWindow(false);
        } else if (startBrowser == e.getSource()) {
            // for some reason, IKVM ignores setActionCommand
            startBrowser();
        }
    }
//#endif

    /**
     * INTERNAL
     */
//#ifdef AWT
    public void mouseClicked(MouseEvent e) {
        if (e.getButton() == MouseEvent.BUTTON1) {
            startBrowser();
        }
    }
//#endif

    /**
     * INTERNAL
     */
//#ifdef AWT
    public void mouseEntered(MouseEvent e) {
    }
//#endif

    /**
     * INTERNAL
     */
//#ifdef AWT
    public void mouseExited(MouseEvent e) {
    }
//#endif

    /**
     * INTERNAL
     */
//#ifdef AWT
    public void mousePressed(MouseEvent e) {
    }
//#endif

    /**
     * INTERNAL
     */
//#ifdef AWT
    public void mouseReleased(MouseEvent e) {
    }
//#endif

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色在线看| 激情久久五月天| 国产欧美一区二区三区在线看蜜臀| 91精品国产高清一区二区三区| 欧美三级日韩三级| 91精品国模一区二区三区| 精品婷婷伊人一区三区三| 在线一区二区观看| 精品视频1区2区| 91精品国产手机| 日韩视频一区二区三区| www久久精品| 国产欧美日韩麻豆91| 国产精品黄色在线观看| 亚洲码国产岛国毛片在线| 一个色妞综合视频在线观看| 亚洲国产欧美在线人成| 日本成人中文字幕| 国产成人在线视频网址| 99re6这里只有精品视频在线观看| 在线视频国内自拍亚洲视频| 欧美日韩亚州综合| 久久综合久久久久88| 亚洲欧洲日本在线| 亚洲高清三级视频| 国产自产高清不卡| 91视频在线观看免费| 欧美福利一区二区| 国产亚洲美州欧州综合国| 亚洲欧美日韩一区| 美国十次了思思久久精品导航| 丁香激情综合国产| 欧美四级电影网| 久久嫩草精品久久久久| 一区二区三区四区不卡在线| 久久国产精品色| 91免费小视频| 久久综合成人精品亚洲另类欧美 | 极品少妇一区二区| 92精品国产成人观看免费| 日韩一区二区视频| 亚洲女女做受ⅹxx高潮| 九九九精品视频| 色婷婷综合久色| 久久精品一区二区三区av| 一区二区在线观看不卡| 国产曰批免费观看久久久| 欧美在线free| 国产精品视频在线看| 美女性感视频久久| 91国偷自产一区二区开放时间| 精品国产一区二区精华| 亚洲一区二区视频在线观看| a级精品国产片在线观看| 精品美女一区二区三区| 亚洲不卡一区二区三区| 91色乱码一区二区三区| 久久精品日韩一区二区三区| 日本不卡一区二区| 成人性生交大片免费看在线播放| 日韩视频123| 午夜伊人狠狠久久| 欧美无人高清视频在线观看| 中文字幕一区二区三中文字幕| 99r国产精品| 欧美一区二区三区在线| 国产精品国产三级国产aⅴ入口 | 亚洲大片在线观看| 97aⅴ精品视频一二三区| 国产亚洲欧美日韩在线一区| 精一区二区三区| 日韩欧美电影在线| 久久aⅴ国产欧美74aaa| 日韩午夜在线观看视频| 日产国产高清一区二区三区| 91精品国产综合久久蜜臀| 无吗不卡中文字幕| 欧美一区2区视频在线观看| 日本午夜精品视频在线观看| 91精品国产欧美一区二区18 | 青青草国产成人99久久| 欧美三日本三级三级在线播放| 亚洲综合免费观看高清完整版在线 | 成人avav影音| 中文字幕一区二区三区乱码在线| 成人免费视频一区二区| 亚洲欧美日韩国产中文在线| 色噜噜久久综合| 亚洲一区二区综合| 欧美精品亚洲一区二区在线播放| 视频一区欧美日韩| 日韩精品资源二区在线| 国产精品亚洲专一区二区三区 | 99麻豆久久久国产精品免费| 亚洲日本电影在线| 欧美人xxxx| 久久99在线观看| 国产精品高清亚洲| 欧美日韩黄色一区二区| 精品一区精品二区高清| 国产精品蜜臀av| 欧美亚洲一区三区| 麻豆精品一区二区| 中文字幕一区二区三区四区不卡| 欧美私模裸体表演在线观看| 久久爱www久久做| 国产精品伦理一区二区| 欧美精品黑人性xxxx| 国产乱子伦一区二区三区国色天香| 欧美国产日韩在线观看| 欧美日韩精品免费| 国产成人免费av在线| 亚洲综合激情网| 久久久久久久av麻豆果冻| av资源网一区| 久久精品免费看| 亚洲精品国产精华液| 欧美不卡一二三| 在线亚洲一区二区| 国产成人精品在线看| 亚瑟在线精品视频| 亚洲国产高清在线观看视频| 在线播放国产精品二区一二区四区| 成人一道本在线| 蜜臀av一级做a爰片久久| 亚洲精品一卡二卡| 日本一区二区三级电影在线观看 | 欧美tickling挠脚心丨vk| 日本韩国欧美在线| av在线一区二区三区| 老司机精品视频线观看86 | 91精品国产高清一区二区三区| 国产成人av一区| 欧美a级理论片| 午夜精品福利一区二区三区蜜桃| 国产欧美日本一区二区三区| 日韩免费观看高清完整版| 欧美亚洲国产bt| 色呦呦国产精品| 99精品一区二区三区| 高清免费成人av| 国产麻豆成人传媒免费观看| 麻豆成人久久精品二区三区小说| 亚洲综合一二区| 亚洲午夜久久久久久久久久久 | 毛片一区二区三区| 日韩精品一级二级| 日日夜夜精品视频天天综合网| 一区二区三区在线高清| 一区二区三区 在线观看视频| 国产精品成人午夜| 国产精品天天看| 中文在线免费一区三区高中清不卡| 久久视频一区二区| 中文字幕av一区二区三区免费看 | 亚洲欧美日韩国产一区二区三区| 国产精品免费视频一区| 中文字幕中文字幕在线一区| 国产精品久久夜| 亚洲欧美日韩一区二区 | 日本不卡高清视频| 免费成人在线视频观看| 久久激情五月婷婷| 国产在线播放一区| jvid福利写真一区二区三区| 91玉足脚交白嫩脚丫在线播放| 色综合夜色一区| 欧美视频一区二区| 欧美一卡二卡三卡| 国产亚洲欧美日韩在线一区| 一区在线观看视频| 三级在线观看一区二区| 久久99精品国产麻豆婷婷| 国产成人免费视频一区| av电影在线观看一区| 欧美三级电影在线观看| 欧美一区二区三区视频免费 | 欧美精品视频www在线观看| 日韩欧美一二三区| 中文乱码免费一区二区| 亚洲一区国产视频| 精品一区二区在线免费观看| 风间由美一区二区三区在线观看 | 日韩久久免费av| 国产精品丝袜一区| 亚洲国产wwwccc36天堂| 九九九精品视频| 日本韩国一区二区三区| 精品国内二区三区| 亚洲黄色片在线观看| 久久精品国产成人一区二区三区| 成人在线综合网| 欧美一区二区视频观看视频 | 97久久久精品综合88久久| 欧美色大人视频| 中文字幕高清不卡| 久久成人av少妇免费| 在线视频国内自拍亚洲视频| 久久先锋资源网| 日韩和欧美一区二区三区|