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

📄 controlmenu.java

📁 这是一个演示分布式系统并行计算的GUI程序
💻 JAVA
字号:
package cn.ac.siat.dswatcher;

import cn.ac.siat.dswatcher.toolkit.LogFileParser;


import java.awt.event.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.swing.*;

/**
 * <p>Title: Menu</p>
 * <p>Description: Menu。</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Filename: ControlMenu.java</p>
 * author Disheng
 * version 1.0
 */

public class ControlMenu implements ActionListener {
    public static Image image1;
    static final URL LOGO = cn.ac.siat.dswatcher.ControlMenu.class.getResource("dswatcherlogo.jpg");
    static JFrame frame;
    static Timer timer;
    static boolean frozen = false;
    LogViewerPanel contentPane;
    JScrollPane scrollPane;
    String newline = "\n";
    static LogViewerPlayer lvp;   // This thread is global-unique.
    JFileChooser fc;
    /**
     * create Menu bar
     *
     * @return JMenuBar
     */
    public JMenuBar createMenuBar() {

    //    dataTableModel.setColumnIdentifiers(dataColumns);
    //    dataTableModel.setDataVector(data, dataColumns);
        fc = new JFileChooser(".");
        //过滤条件在MyFilter类中定义
        fc.addChoosableFileFilter(new MyFilter());

        JMenuBar menuBar;

        JMenu menu;
        JMenuItem menuItem;

        //define menuBar
        menuBar = new JMenuBar();

        //define a menu
        menu = new JMenu("File");
        menu.setMnemonic(KeyEvent.VK_F);
        menuBar.add(menu);

        //import file...
        //ImageIcon icon = createImageIcon("images/Open.gif");
        menuItem = new JMenuItem("Import File...");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, ActionEvent.ALT_MASK));

        menuItem.setMnemonic(KeyEvent.VK_I);
        menuItem.addActionListener(this);
        menu.add(menuItem);

        //set the interval of playing time
        //icon = createImageIcon("images/time.gif");
        menuItem = new JMenuItem("Set Time Interval");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.ALT_MASK));

        menuItem.setMnemonic(KeyEvent.VK_T);
        menuItem.addActionListener(this);
        menu.add(menuItem);

        // close frame
        menuItem = new JMenuItem("Exit");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.ALT_MASK));

        menuItem.setMnemonic(KeyEvent.VK_X);
        menuItem.addActionListener(this);
        menu.add(menuItem);

        menu = new JMenu("Tool");
        menu.setMnemonic(KeyEvent.VK_T);
        menuBar.add(menu);

        //play file...
        //icon = createImageIcon("images/Play.gif");
        menuItem = new JMenuItem("Play");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.ALT_MASK));

        menuItem.setMnemonic(KeyEvent.VK_P);
        menuItem.addActionListener(this);
        menu.add(menuItem);

        //icon = createImageIcon("images/Stop.gif");
        menuItem = new JMenuItem("Pause");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.ALT_MASK));

        menuItem.setMnemonic(KeyEvent.VK_A);
        menuItem.addActionListener(this);
        menu.add(menuItem);
        //Help
        menu = new JMenu("Help");
        menu.setMnemonic(KeyEvent.VK_H);
        menuItem = new JMenuItem("About DSWather");
        menuItem.setMnemonic(KeyEvent.VK_A);
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.ALT_MASK));
        menuItem.addActionListener(this);
        menu.add(menuItem);
        menuBar.add(menu);

        return menuBar;
    }

    /**
     * create Content Pane
     *
     * @return Container
     */
    public LogViewerPanel createContentPane() {

        contentPane = new LogViewerPanel();

        return contentPane;
    }


    public void actionPerformed(ActionEvent e) {
        JMenuItem source = (JMenuItem) (e.getSource());
        String command = source.getText();
        if(command.equals("Exit"))
            System.exit(0);
        else if(command.equals("Import File..."))
        {
            int returnVal = fc.showOpenDialog(frame);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                //在这里添加一些对文件的处理
                try {
                   LogFileParser.parse(file);
                } catch (IOException e1) {
                    e1.printStackTrace();
                } finally
                {
                    LogViewerPlayer.currentTime = ((PlayFrame) LogViewerPanel.frameList.get(0)).getTimestamp();
                }
            }
        }
        else if(command.equals("Set Time Interval"))
        {
            System.out.println("TimeInterval="+LogViewerPlayer.delay);//The smaller 'delay' is, the faster viewer is.
        }
        else if(command.equals("Play"))
        {
            if(timer != null&&!timer.isRunning())
            {
                timer.start();
            }
            else
            {

                if (timer == null||!timer.isRunning()) {
                    if(!lvp.isAlive())
                       lvp.start();
                } else {
                    System.out.println("One Play is Running! Can not play again!");
                }
            }


        }
        else if(command.equals("Pause"))
        {
            timer.stop();
            frozen = true;
        }
        else if(command.equals("About LogViewer"))
        {

        }
        else
            System.out.println("Other Operation...");
    }

    protected String getClassName(Object o) {
        String classString = o.getClass().getName();
        int dotIndex = classString.lastIndexOf(".");
        return classString.substring(dotIndex + 1);
    }

    public static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = ControlMenu.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                //create a frame
                frame = new JFrame("DSWatcher");
                try {
                    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                    //UIManager.setLookAndFeel("com.sun.javax.swing.plaf.motif.MotifLookAndFeel");
                    SwingUtilities.updateComponentTreeUI(frame);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                try {
               //  image1 = frame.getToolkit().getImage(LOGO);
                //     frame.setIconImage(image1);
                  } catch (Exception e) {
                      e.printStackTrace();
                    }

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                ControlMenu menu = new ControlMenu();
                frame.setJMenuBar(menu.createMenuBar());
                LogViewerPanel contentPane = menu.createContentPane();
                frame.setContentPane(contentPane);
                Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                int xpos = ((int) screenSize.getWidth() - 610) / 2;
                int ypos = ((int) screenSize.getHeight() - 450) / 2;

                frame.setLocation(xpos,ypos);
                frame.setSize(610, 450);
                frame.setVisible(true);

            }
        });
    }

}

⌨️ 快捷键说明

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