
klik aja disini kalo pengen nyobain.
Bamboomedia

import java.util.Vector;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hauw
*/
public class NamedVector extends Vector{
private String nama;
public NamedVector(String nama) {
this.nama = nama;
}
@Override
public synchronized String toString() {
return nama;
}
}

private DefaultMutableTreeNode rootNode;
private DefaultTreeModel treeModel;
/** Creates new form Form */
public Form() {
initComponents();
File file = new File("D:/Kuliah");
rootNode = new DefaultMutableTreeNode(file.getAbsolutePath());
treeModel = new DefaultTreeModel(rootNode);
jTree1.setModel(treeModel);
JTree.DynamicUtilTreeNode.createChildren(rootNode, getFileDirectory(file));
}
private static NamedVector getFileDirectory(File directory) {
NamedVector vectorDirectory = new NamedVector(directory.getName());
File[] files = directory.listFiles();
for (File file : files) {
if(file.isDirectory()) {
NamedVector vector = getFileDirectory(file);
vectorDirectory.add(vector);
} else {
vectorDirectory.add(file.getName());
}
}
return vectorDirectory;
}



import java.awt.Dimension;
import java.awt.FontMetrics;
import javax.swing.JComboBox;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hauw
*/
public class AutoResizeComboBox extends JComboBox {
@Override
public Dimension getSize() {
Dimension dimension = new Dimension();
dimension.width = getPanjangPopup();
return dimension;
}
private int getPanjangPopup() {
int panjangComboBox = (int) super.getSize().getWidth();
if (panjangComboBox < getTeksTerpanjang()) {
return getTeksTerpanjang();
}
return panjangComboBox;
}
private int getTeksTerpanjang() {
int panjangTeks = 0;
int count = getItemCount();
for (int i = 0; i < count; i++) {
FontMetrics fontMetrics = getFontMetrics(getFont());
String teks = getItemAt(i).toString();
if (panjangTeks < fontMetrics.stringWidth(teks)) {
panjangTeks = fontMetrics.stringWidth(teks);
}
}
return panjangTeks + 5;
}
}

import java.awt.BorderLayout;
import java.util.regex.PatternSyntaxException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hauw
*/
public class TableFilterExample extends JFrame {
private JTable tableData;
private JScrollPane scrollPane;
private JPanel panelFilter;
private JLabel labelFilter;
private JTextField textFilter;
private DefaultTableModel tableModel;
private TableRowSorter rowSorter;
public TableFilterExample() {
super("Contoh Table Filter");
tableModel = new DefaultTableModel();
tableModel.addColumn("Nama");
tableModel.addColumn("Alamat");
tableModel.addRow(new Object[]{
"Yulias Kurniawan", "Semarang"
});
tableModel.addRow(new Object[]{
"Yohannes Sudirwan", "Tangerang"
});
tableModel.addRow(new Object[]{
"Nova Setiawan", "Solo"
});
tableModel.addRow(new Object[]{
"Agung Prasetya", "Kudus"
});
tableModel.addRow(new Object[]{
"Hans Ricardo", "Jepara"
});
tableData = new JTable(tableModel);
scrollPane = new JScrollPane(tableData);
add(scrollPane, BorderLayout.CENTER);
textFilter = new JTextField();
labelFilter = new JLabel("Cari:");
panelFilter = new JPanel(new BorderLayout());
panelFilter.add(labelFilter, BorderLayout.WEST);
panelFilter.add(textFilter, BorderLayout.CENTER);
add(panelFilter, BorderLayout.NORTH);
rowSorter = new TableRowSorter(tableModel);
tableData.setRowSorter(rowSorter);
textFilter.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
changedUpdate(e);
}
public void removeUpdate(DocumentEvent e) {
changedUpdate(e);
}
public void changedUpdate(DocumentEvent e) {
String filter = textFilter.getText();
if (filter == null) {
rowSorter.setRowFilter(RowFilter.regexFilter(null));
} else {
char[] charArray = filter.toCharArray();
String[] stringArray = new String[charArray.length];
for (int i = 0; i < stringArray.length; i++) {
stringArray[i] = "[" + Character.toUpperCase(charArray[i])
+ Character.toLowerCase(charArray[i]) + "]";
}
String regex = "";
for (String string : stringArray) {
regex += string;
}
try {
rowSorter.setRowFilter(RowFilter.regexFilter(regex));
} catch (PatternSyntaxException ex) {
ex.printStackTrace();
}
}
}
});
}
public static void main(String[] args) {
TableFilterExample app = new TableFilterExample();
app.pack();
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hauw
*/
public class PhoneValidator extends PlainDocument {
private int maxCharacter;
private boolean phoneOnly;
private String phoneChars = "+#*0123456789";
public PhoneValidator() {
this(-1, false);
}
public PhoneValidator(int maxCharacter, boolean phoneOnly) {
this.maxCharacter = maxCharacter;
this.phoneOnly = phoneOnly;
}
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (phoneOnly) {
if (maxCharacter == -1) {
if (checkString(str)) {
super.insertString(offs, str, a);
}
} else {
int panjangTextLama = getLength();
int panjangTextBaru = str.length();
if ((panjangTextLama + panjangTextBaru) <= maxCharacter) {
if (checkString(str)) {
super.insertString(offs, str, a);
}
}
}
} else {
if (maxCharacter == -1) {
super.insertString(offs, str, a);
} else {
int panjangTextLama = getLength();
int panjangTextBaru = str.length();
if ((panjangTextLama + panjangTextBaru) <= maxCharacter) {
super.insertString(offs, str, a);
}
}
}
}
private boolean checkString(String input) {
boolean result = false;
for (int i = 0; i < input.length(); i++) {
if (phoneChars.indexOf(input.charAt(i)) == -1) {
result = false;
break;
} else {
result = true;
}
}
return result;
}
}
import javax.swing.JFrame;
import javax.swing.JTextField;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author hauw
*/
public class TestValidasi {
public static void main(String[] args) {
JFrame frame = new JFrame("Test validasi text field");
JTextField textNoTelpon = new JTextField();
textNoTelpon.setDocument(new PhoneValidator(15, true));
frame.add(textNoTelpon);
frame.setVisible(true);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}