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

📄 swingdemos.java

📁 GUI代码,用与实现相关GUI的功能,如有需要即可自由下载!
💻 JAVA
字号:
/*
 * $Header$
 * $Date$ 
 * $Revision$
 * Copyright (C) 2003-2004 CIC, Tsinghua Univ. 
 */
package jcase.gui.swing;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Properties;

import javax.swing.*;

import jcase.gui.DefaultWindowListener;

/**
 * SwingDemos 
 */
public class SwingDemos extends BaseSwingDemo implements ActionListener,Runnable{
	JTabbedPane tabpane;
	JToolBar toolbar;
	JMenu demoMenu;
	/**
	 * @see jcase.gui.swing.BaseSwingDemo#init()
	 */
	protected void init() {
		setLayout(new BorderLayout());
		toolbar = new JToolBar();
		add(toolbar,BorderLayout.NORTH);
		tabpane = new JTabbedPane();		
		add(tabpane,BorderLayout.CENTER);
		demoMenu = new JMenu("示例");
	}
	/**
	 * @see jcase.gui.swing.BaseSwingDemo#getTitle()
	 */
	public String getTitle() {		
		return "Swing组件演示";
	}
	
	
	private JMenuBar createMenuBar(){
		JMenuBar menubar = new JMenuBar();
		JMenu file = menubar.add(new JMenu("文件"));
		file.add(new JMenuItem("打开")).addActionListener(this);
		file.add(new JMenuItem("退出")).addActionListener(this);
		menubar.add(demoMenu);
		JMenu help = menubar.add(new JMenu("帮助"));
		help.add(new JMenuItem("关于...")).addActionListener(this);
		return menubar;
	}
	
	public static void main(String[] args) {
		SwingDemos demo = new SwingDemos();
		javax.swing.JFrame frm = new javax.swing.JFrame(demo.getTitle());
		frm.setJMenuBar(demo.createMenuBar());
		frm.getContentPane().add(demo);		
		frm.pack();
		frm.show();
		frm.addWindowListener(new DefaultWindowListener());
		new Thread(demo).start();
	}
	/**
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent e) {
		String command=e.getActionCommand();
		if(command.equals("退出")){
			System.exit(0);
		}else if(command.endsWith("关于...")){
			String about="<html><b>Swing组件演示程序</b><br>" +
					"版本 1.0 (2004年4月)<br>" +
					"联系作者 <a href=\"mailto:xiefengbo@tsinghua.org.cn\">xiefengbo@tsinghua.org.cn</a><br>" +
					"清华大学计算中心</html>";
			JOptionPane.showMessageDialog(this,about);
		}
		else{
			JOptionPane.showMessageDialog(this,"您选择了\""+command+"\""); 
		}
	}
	/**
	 * @see java.lang.Runnable#run()
	 */
	public void run() {
		Properties demos = new Properties();
		try {
			demos.load(getClass().getResourceAsStream("/jcase/gui/resources/swingdemos.properties"));
		} catch (Exception ioe) {
			JOptionPane.showMessageDialog(this,"无法读取/jcase/gui/resources/swingdemos.properties文件!",
					"IO错误",JOptionPane.ERROR_MESSAGE);
			return;
		}
		List list = new ArrayList(demos.keySet());
		Collections.sort(list);
		for(int i=0;i<list.size();i++){
			String demoname=(String)list.get(i);
			try{				
				BaseSwingDemo demo=(BaseSwingDemo)Class.forName(demoname).newInstance();
				ImageIcon icon = createImageIcon(demos.getProperty(demoname));
				Action action=new DemoAction(demo,icon,this);
				toolbar.add(action);
				demoMenu.add(action);
				if(i==0){
					showDemo(demo);
				}
			}catch(Exception e){
				System.out.println("无法实例化演示:"+demoname);
				System.out.println(e);
			}
		}
	}
	public ImageIcon createImageIcon(String path) {
		URL img =getClass().getResource(path);
		if(null==img)
			img=getClass().getResource("/jcase/gui/resources/bean.gif");
		return new ImageIcon(img); 
	}
	/**
	 * @see java.awt.Component#getPreferredSize()
	 */
	public Dimension getPreferredSize() {
		return new Dimension(800,600);
	}
	
	public void showDemo(BaseSwingDemo demo){
		tabpane.removeAll();
		tabpane.addTab(demo.getTitle(),demo);
		HtmlDemo htmlDemo = new HtmlDemo(demo.getClass().getName());
		tabpane.addTab(htmlDemo.getTitle(),htmlDemo);
	}
}

⌨️ 快捷键说明

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