Şimdi Ara

jtree dosya sistemi oluşturma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
476
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhaba arkadaşlar, jtree ile bilgisayarımdaki dosyaları çok seviyeli olarak gösterebiliyorum. bunu tek seviyeli olarak nasıl gösterebilirim ?

    kodlar bu şek,lde ,
    public class FileTree implements TreeModel { 

    private File root;

    public FileTree(File root) {
    this.root = root;
    }

    public Object getRoot() {
    return root;
    }

    public boolean isLeaf(Object node) {
    return ((File) node).isFile();
    }

    public int getChildCount(Object parent) {
    String[] children = ((File) parent).list();
    if (children == null)
    return 0;
    return children.length;
    }

    public Object getChild(Object parent, int index) {
    String[] children = ((File) parent).list();
    if ((children == null) || (index >= children.length))
    return null;
    return new File((File) parent, children[index]);
    }

    public int getIndexOfChild(Object parent, Object child) {
    String[] children = ((File) parent).list();
    if (children == null)
    return -1;
    String childname = ((File) child).getName();
    for (int i = 0; i < children.length; i++) {
    if (childname.equals(children[i]))
    return i;
    }
    return -1;
    }







  •  
    import java.awt.BorderLayout;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.io.File;
    import java.sql.Date;

    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTable;
    import javax.swing.JTree;
    import javax.swing.table.DefaultTableModel;

    public class GuiFile {

    private JFrame frame;
    private JTree tree;
    private DefaultTableModel tableModel;
    private FileTree model;

    GuiFile() {
    getFrame().setVisible(true);
    }

    public JFrame getFrame() {
    if (frame == null) {
    frame = new JFrame("File Tree");
    frame.setLayout(new BorderLayout());
    frame.add(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
    new JScrollPane(getTree()), new JScrollPane(new JTable(
    getTableModel()))));
    frame.setSize(1100, 600);
    }
    return frame;
    }

    public DefaultTableModel getTableModel() {
    if (this.tableModel == null) {
    tableModel = new DefaultTableModel();
    tableModel.addColumn("Name");
    tableModel.addColumn("Date");
    }
    return tableModel;
    }

    public JTree getTree() {
    if (tree == null) {
    this.tree = new JTree();
    tree.setModel(getModel());
    tree.addMouseListener(mListeneer());
    }
    return tree;
    }

    public FileTree getModel() {
    if (model == null) {
    this.model = new FileTree(new File("C:/"));
    }
    return model;
    }

    private MouseListener mListeneer() {

    return new MouseListener() {

    @Override
    public void mouseClicked(MouseEvent e) {
    File file = (File) tree.getLastSelectedPathComponent();


    tableModel.getDataVector().removeAllElements();

    int rows = model.getChildCount(file);
    for (int i = 0; i <= rows; i++) {
    Object ad = model.getChild(file, i);
    Date tarih = new Date(((File) ad).lastModified());
    tableModel.addRow(new Object[] { ad, tarih });
    }
    }

    @Override
    public void mousePressed(MouseEvent e) {
    }

    @Override
    public void mouseReleased(MouseEvent e) {
    }

    @Override
    public void mouseEntered(MouseEvent e) {
    }

    @Override
    public void mouseExited(MouseEvent e) {
    }
    };
    }

    public static void main(String[] args) {

    new GuiFile();
    }
    }



    diğer sınıfın kodlarını koymayı unutmuşum. Yardımlarınızı bekliyorum arkadaşlar.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.