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

📄 mainview.java

📁 用Swing实现的CHM制作工具
💻 JAVA
字号:
package g2w.app.gchm.gui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.io.File;
import java.io.IOException;

import g2w.app.gchm.GChm;
import g2w.app.gchm.lib.GWindowUtility;

import javax.swing.BoxLayout;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

/**
 * The main view of GCHMCreator.
 * 
 * @author GreatGhoul
 * @version 035 2009-3-21 22:38:35
 */
public class MainView extends JFrame {
	
	/** Project Editor */
	private ProjectEditor projectEditor;
	
	public MainView() {
		super(GChm.getFullName());
		initComponents();
	}
	
	/**
	 * Initialize all components.
	 */
	private void initComponents() {
		addWindowListener(new WindowAdapter() {
			@SuppressWarnings("unused")
			public void windowClosing() {
				exit();
			}
		});
		setSize(800, 600);
		setMinimumSize(new Dimension(700, 500));
		GWindowUtility.bringToCenter(this);
		
		// Initialize the menu bar.
		setJMenuBar(MenuBarProvider.getMainMenuBar());
		
		// Initialize the project editor.
		projectEditor = new ProjectEditor();
		add(projectEditor, BorderLayout.CENTER);
		
		// Initialize the status bar.
		add(createStatusBar(), BorderLayout.SOUTH);
		
		validate();
		repaint();
	}

	/**
	 * Initialize the status bar.
	 */
	private JPanel createStatusBar() {
		JPanel panel = new JPanel();
		panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
		panel.add(new JLabel("状态栏"));
		return panel;
	}

	/**
	 * Exit the application.
	 */
	public void exit() {
		if (projectEditor.confirmOnClose()) {
			dispose();
			System.exit(0);
		}

	}

	/**
	 * Get the project editor 
	 */
	public ProjectEditor getProjectEditor() {
		return projectEditor;
	}

	/**
	 * Show the about dialog.
	 */
	public void showAboutDialog() {
		StringBuilder about = new StringBuilder();
		about.append("GCHMCreator\n");
		about.append("Version 1.1\n\n");
		about.append("(c) Copyright Ghoul To World and others 2009. All rights reserved.\n");
		about.append("Vista http://greatghoul.blogspot.com\n\n");
		about.append("Author: GreatGhoul    greatghoul@gmail.com\n");
		about.append("Author: YangLe        yangle05@163.com\n");
		
		JOptionPane.showMessageDialog(GChm.instance, 
				about.toString(), 
				"关于", 
				JOptionPane.INFORMATION_MESSAGE);
	}

	public void visitWebsite() {
		String cmd = "rundll32 url.dll,FileProtocolHandler http://greatghoul.blogspot.com";
		try {
			Runtime.getRuntime().exec(cmd);
		} catch (IOException e) {}
	}

	public void setWorkspace() {
		JFileChooser chooser = new JFileChooser();
		chooser.setDialogTitle("设定工作空间");
		chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		int state = chooser.showOpenDialog(null);
		File workspace = chooser.getSelectedFile();
		if(workspace != null && state == JFileChooser.APPROVE_OPTION) {
			if (!workspace.exists())
				workspace.mkdirs();
			GChm.setProperty("Workspace", workspace.getAbsolutePath() + "\\");
		} else {
			return;
		}
	}
}

⌨️ 快捷键说明

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