📄 controlmenu.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 + -