void setColumns() {
		JTableHeader jth = jt.getTableHeader();
		jth.setReorderingAllowed(true);
		TableColumnModel tcm = jt.getColumnModel();
		TableColumn tc;
		int width = 0;
		for (int i = 0; i < details.length; i++) {
			tc = tcm.getColumn(i);
			int cw = (Integer) details[i][2];
			width += cw;
			tc.setPreferredWidth(cw);
			tc.setHeaderValue(details[i][1]);

			if (i != 0) {
				tc.setCellRenderer(new DefaultTableCellRenderer() {
					private static final long serialVersionUID = 1L;

					public void setValue(Object value) {
						if (value == null)
							return;
						if (value instanceof Long) {
							long v = (Long) value;
							setText(DirectoryTable.nf.format(v));
							setHorizontalAlignment(JLabel.RIGHT);
						} else if (value instanceof Integer) {
							int v = (Integer) value;
							setText(DirectoryTable.nf.format(v));
							setHorizontalAlignment(JLabel.RIGHT);
						} else {
							String s = value.toString();
							if (s.contains("\n")) {
								s = "<html><body>" + s + "</body></html>";
								s = patt.matcher(s).replaceAll("<br/>");
								s = s.replaceAll("\n", "<br/>");
								this.setToolTipText(s);
							}else if (s.contains("<br/>")) {
								s = "<html><body>" + s + "</body></html>";
								this.setToolTipText(s);
							}else {
								this.setToolTipText(null);
							}
							setText(value.toString());
						}
					}

				});

			}
		}
	}