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

📄 show_threads.bsh

📁 用java 编写的源码开放的文本编辑器。有很多有用的特性
💻 BSH
字号:
/* Show_Threads.bsh * * A BeanShell macro script for jEdit - displays all threads in a tree. * * Copyright (c) 2001 Dirk Moebius (dmoebius@gmx.net) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. * * * Version 1.0 * requires JDK 1.1, jEdit3.1 * * $Id: Show_Threads.bsh,v 1.2 2002/01/31 05:35:48 spestov Exp $ */import java.awt.event.*;import javax.swing.*;import javax.swing.tree.*;JFrame createThreadsFrame() {	void windowClosing(WindowEvent e) {		GUIUtilities.saveGeometry(frame, "macros-show-threads");	}	void keyPressed(KeyEvent e) {		if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {			GUIUtilities.saveGeometry(frame, "macros-show-threads");			frame.setVisible(false);			frame.dispose();		}		else if (e.getKeyCode() == KeyEvent.VK_U) {			tree.setModel(new DefaultTreeModel(createModel()));			tree.revalidate();		}	}	// Having these members of KeyListener and WindowListener implemented as	// no-ops will speedup execution.  Otherwise BeanShell throws an	// exception each time one of these events occur.	void keyReleased(KeyEvent e) { }	void keyTyped(KeyEvent e) { }	void windowActivated(WindowEvent e) { }	void windowClosed(WindowEvent e) { }	void windowDeactivated(WindowEvent e) { }	void windowDeiconified(WindowEvent e) { }	void windowIconified(WindowEvent e) { }	void windowOpened(WindowEvent e) { }	ThreadGroup getMainThreadGroup() {		t = Thread.currentThread();		g = t.getThreadGroup();		while (g.getParent() != null)			g = g.getParent();		return g;	}	DefaultMutableTreeNode createModel() {		g = getMainThreadGroup();		return createGroupNode(g);	}	DefaultMutableTreeNode createGroupNode(ThreadGroup g) {		node = new DefaultMutableTreeNode(g.getName() + (g.isDaemon() ? " (daemon)" : ""), true);		groups = new ThreadGroup[g.activeGroupCount()];		count = g.enumerate(groups, false);		for (int i = 0; i < count; ++i)			node.add(createGroupNode(groups[i]));		threads = new Thread[g.activeCount()];		count = g.enumerate(threads, false);		for (int i = 0; i < count; ++i)			node.add(new DefaultMutableTreeNode(getDescription(threads[i]), false));		return node;	}	String getDescription(Thread t) {		StringBuffer buf = new StringBuffer(t.getName());		buf.append(" (prio ");		buf.append(t.getPriority());		if (!t.isAlive())			buf.append(", not started");		if (t.isDaemon())			buf.append(", daemon");		if (t.isInterrupted())			buf.append(", interrupted");		buf.append(")");		return buf.toString();	}	tree = new JTree(createModel());	tree.putClientProperty("JTree.lineStyle", "Angled");	tree.addKeyListener(this);	stage = new JScrollPane(tree);	stage.setColumnHeaderView(new JLabel("[Esc] Close      [U] Update"));	frame = new JFrame("Current Threads");	frame.setContentPane(stage);	frame.addWindowListener(this);	// set default size and position:	frame.setSize(new Dimension(400, 400)); // faster than pack()	// overwrite default size and position loading user properties:	GUIUtilities.loadGeometry(frame, "macros-show-threads");	frame.setVisible(true);	return frame;}createThreadsFrame();/*Macro index data (in DocBook format)  <listitem>    <para><filename>Show_Threads.bsh</filename></para>    <abstract><para>      Displays all running Java threads in a tree.    </para></abstract>  </listitem>*/// end Show_Threads.bsh

⌨️ 快捷键说明

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