public void copyComponent(Component c) {
		if (getDocument() == null)
			return;
		if (getDocument().getLength() <= 0)
			return;
		AbstractDocument.BranchElement section = (AbstractDocument.BranchElement) getDocument().getDefaultRootElement();
		AbstractDocument.BranchElement paragraph = null;
		AbstractDocument.LeafElement content = null;
		Object name = null, attr = null;
		for (Enumeration i = section.children(); i.hasMoreElements();) {
			paragraph = (AbstractDocument.BranchElement) i.nextElement();
			for (Enumeration j = paragraph.children(); j.hasMoreElements();) {
				content = (AbstractDocument.LeafElement) j.nextElement();
				for (Enumeration k = content.getAttributeNames(); k.hasMoreElements();) {
					name = k.nextElement();
					attr = content.getAttribute(name);
					if (attr == c) {
						select(content.getStartOffset(), content.getEndOffset());
						copy();
						if (content.getEndOffset() < getDocument().getLength() - 1)
							setCaretPosition(content.getEndOffset() + 1);
						break;
					}
				}
			}
		}
	}