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

📄 demotree.java

📁 导出ORACLE数据库对象DDL语句的程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.icbcsdc.ddlexp.ui.model;
import java.awt.AWTEvent;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class DemoTree extends JFrame implements ActionListener
{
	pv.jfcx.JPVTreeView m_tree;

	int m_clr = 0;
	//--------------------
	public DemoTree()
	{
		super("JPVTree with Drag-And-Drop");
		enableEvents(AWTEvent.WINDOW_EVENT_MASK);
		Container panel = getContentPane();
//		panel.setLayout(null);//设置为NULL表示按照固定尺寸显示
		//-------------------------------
		m_tree = buildPVTree();

//		m_tree2 = new pv.jfcx.JPVTreeView();
//		m_tree3 = buildPVTree2();
		//-------------------------------
//		m_tree2.setDemoNodes(true);
//		m_tree2.getTree().setSelectionRow(3);
//		m_tree2.getRoot().setUserObject("Drop is Enabled");
//		m_tree2.setEnableDrop(true);
		//-------------------------------
		// create listener to JPVTree and add it to trees
//		pv.jfcx.PVTreeListener ls = buildListener();
//		m_tree.addAllListeners(ls);

		//-------------------------------
		// add trees to frame
    m_tree.setSize(300,300);
		//m_tree.setBounds(12, 100, 250, 290);
		panel.add(m_tree);

		//-------------------------------
		// set background images (they painted only if opaque is disabled)
//		m_tree.m_image = backImage();
//or		m_tree.m_image = pv.util.PVImage.file(this, "e:/Tree/Images/pv.gif");
		m_tree.setOpaque(true);
		//-------------------------------
		init0();
		//-------------------------------
		// expand some nodes
		// NOTE:
		// If it is done before tree has been completely
		// initialyzed, then TreeUI may reset structure of tree
		// nodes to the "DEFAULT" defined by a particular UI.
		m_tree.getTree().expand(m_tree.getTree().nodeAt(1));
		m_tree.getTree().expand(m_tree.getTree().nodeAt(4));
	}
/*
  //事件响应
	//--------------------
	// create listener to JPVTree events
	pv.jfcx.PVTreeListener buildListener()
	{
		//-----------------------------
		// all method-implementations in class below are optional
		return new pv.jfcx.PVTreeListener()
		{
			//--------------------------
			// implementation of the tree selection listener
			public void valueChanged(TreeSelectionEvent e)
			{
				pv.jfcx.PVNode n = (pv.jfcx.PVNode)e.getPath().getLastPathComponent();
				String s = n.toString();
				//-----------------------
				// check if this event is triggered by check-box/radio-button
				if(!e.isAddedPath() && e.getOldLeadSelectionPath() == null &&
					e.getNewLeadSelectionPath() == null)
						s += " <BOX=" + n.isChecked() + ">";
				show(s, 0);
			}
			//--------------------------
			// implementation of the tree expansion listener
			public void treeExpanded(TreeExpansionEvent e)
			{ show("expanded: " + e.getPath().getLastPathComponent(), 1); }
			public void treeCollapsed(TreeExpansionEvent e)
			{ show("collapsed: " + e.getPath().getLastPathComponent(), 1); }
			//--------------------------
			// implementation of the tree model listener
			public void treeNodesChanged(TreeModelEvent e)
			{ show("Nodes Changed", 2); }
			public void treeNodesInserted(TreeModelEvent e)
			{ show("Nodes Inserted", 2); }
			public void treeNodesRemoved(TreeModelEvent e)
			{ show("Nodes Removed", 2); }
			public void treeStructureChanged(TreeModelEvent e)
			{
				//System.out.println("StructureChanged " + e);
			}
			public int beforeInsertKey(pv.jfcx.PVTreeEvent e)
			{
				//System.out.println("beforeInsert");
				return super.beforeInsertKey(e);
			}
			public int beforeDeleteKey(pv.jfcx.PVTreeEvent e)
			{
				//System.out.println("beforeDelete");
				return super.beforeDeleteKey(e);
			}
			public int startDrag(pv.jfcx.PVTreeEvent e)
			{
				show((String)e.nodeSource.getUserObject(), 3);
				show("", 4);
				show("", 5);
				return super.startDrag(e); // pv.jfcx.PVTreeEvent.ALLOW_DRAG_DROP;
			}
			public int dragOver(pv.jfcx.PVTreeEvent e)
			{
				String style = ((e.modifiers & InputEvent.CTRL_MASK) == 0) ? " (move)" : " (copy)";
				show("\"" + (String)e.nodeSource.getUserObject() +
					"\", OVER \"" + (String)e.nodeTarget.getUserObject() + "\"" + style, 4);
				return super.dragOver(e); // pv.jfcx.PVTreeEvent.ALLOW_DRAG_DROP;
			}
			public int beforeDrop(pv.jfcx.PVTreeEvent e)
			{
				String style = ((e.modifiers & InputEvent.CTRL_MASK) == 0) ? "MOVE \"" : "COPY \"";
				show(style + (String)e.nodeSource.getUserObject() +
					"\", TO \"" + (String)e.nodeTarget.getUserObject() + "\"", 5);
				return super.beforeDrop(e); // pv.jfcx.PVTreeEvent.ALLOW_DRAG_DROP;
			}
			public void afterDrop(pv.jfcx.PVTreeEvent e)
			{
				//System.out.println("afterDrop OF: " + e.nodeSource.getUserObject() + ", TO: " + e.nodeTarget.getUserObject());
			}
		};
	}
*/
  //-------------------------
	// close application
	protected void processWindowEvent(WindowEvent e)
	{
		super.processWindowEvent(e);
		if(e.getID() == WindowEvent.WINDOW_CLOSING)
			System.exit(0);
	}
	//--------------------
	// listen to button events
	public void actionPerformed(ActionEvent e)
	{

	}
	//--------------------
	// draw background image
	Object backImage()
	{
		return new Icon()
		{
			public void paintIcon(Component c, Graphics g, int x, int y)
			{
				Rectangle r = c.getBounds();
				((pv.jfcx.PVPanel)c).adjustRect(r, false);
				r.x = r.width;
				r.width = (r.width - 10) / 4;
				r.height = (r.height - 20) / 4;
				x += 5;
				y += 10;
				for(int j = 0; j < 3; j++)
				{
					g.setColor(new Color(0xffc0c0c0 | (0xff << (2 - j) * 8)));
					g.fillOval(x + r.width * j, y + r.height * j, r.width * 2, r.height * 2);
				}
				g.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, r.width));
				String s = "Image!";
				x += (r.x - getFontMetrics(g.getFont()).stringWidth(s)) / 2;
				g.setColor(Color.white);
				y += r.height * 2;
				g.drawString(s, x + 2, y + 2);
				g.setColor(c.getBackground());
				g.drawString(s, x, y);
			}
			public int getIconWidth(){return 0;}
			public int getIconHeight(){return 0;}
		};
	}
	//-------------------
	// create JPVTreeView
	pv.jfcx.JPVTreeView buildPVTree()
	{
		//-------------------
		// next line is an example for custom node-renderer
		//pv.jfcx.JPVTreeView tree = new pv.jfcx.JPVTreeView(new MyTree());
		//-------------------
		// next 4 lines show an example for a checkbox on the root node
		/*
		MyNode rootNode = new MyNode("Root as CheckBox", false);
		rootNode.setImageAt(new ImageIcon("e:/Tree/Images/cdrom.gif"), 0);
		rootNode.setButton(1, true);
		pv.jfcx.JPVTreeView tree = new pv.jfcx.JPVTreeView(rootNode);
		*/
		pv.jfcx.JPVTreeView tree = new pv.jfcx.JPVTreeView();
		tree.setKeepMetalUI(true);
		//tree.setShadow(1);
		//tree.setShadowWidth(10);
		tree.setBorderStyle(pv.util.PVBorder.SUNKEN + 7);
		tree.setBorderColor(new Color(0xff80c080));
		tree.setExpandedIcon(new ImageIcon("e:/minus.gif"));//e:/Tree/Images/minus.gif
		tree.setCollapsedIcon(new ImageIcon("e:/plus.gif"));//e:/Tree/Images/plus.gif
		tree.setEnableInsertKey(true);
		tree.setEnableDeleteKey(true);
		tree.setEnableDrag(true);
		tree.setEnableDrop(true);
		//-------------------------------
		// Set dynamic tree-images.
		tree.setLAF_Images(false);
		tree.setLeafStyle(8);
		tree.setFocusBorder(2);
		tree.setFocusBorderColor(new Color(0xff000080));
		tree.setTreeBackground(new Color(0xffc0ffc0));
		tree.setFocusForeground(new Color(0xfffff3));
		tree.setFocusBackground(new Color(0xab0000));
		tree.setSelectionForeground(new Color(0x00f7f7));
		tree.setSelectionBackground(new Color(0xf470c7));
		tree.setEditable(true);
		//-------------------------------
		// fill up tree
		pv.jfcx.PVNode root = tree.getRoot();
		root.setUserObject("Drag & Drop are Enabled");
		pv.jfcx.PVNode one = new pv.jfcx.PVNode("CheckBox & Radio");
		one.setButton(1, true);
		pv.jfcx.PVNode two = new MyNode("Custom flat, image", true);
		two.setImageAt(new ImageIcon("e:/Tree/Images/bell.gif"), 0);
		two.setButton(1, true);
		one.add(two);
		two = new MyNode("Custom 3D, image", false);
		two.setImageAt(new ImageIcon("e:/Tree/Images/cdrom.gif"), 0);
		two.setButton(1, true);

⌨️ 快捷键说明

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