Konular

Java'da Table Bileşeni Kullanımı

Swing'in JTable nesnesi ve TableModel kullanımına ilişikin bir yazı

Swing'de JTable nesnesi MVC (Model-View-Controller / Model - Görünüş - Denetleyici) desenine uygun olarak tablonun verisi ile görsel bileşeni ayrı tanımlamaya izin verir.  JTable, model olmadan da, bir matris (iki boyutlu dizi) verilerek de kullanılabilir. Örneğin

  String[] columns=new String[]
    {"Ad","Soyad","Ev Tel","Cep Tel","E-Mail"};
 
   
  String[][] cells=new String[][]{
     {"Ali","Yılmaz","622 12 56","533 7234 45 67","axxx@yahoo.com"},
     {"Veli","Kaya","642 01 14","543 257 42 657","byyy@hotmail.com"},
     {"Ahmet","Gül","621 52 12","533 234 25 27","zzz@mynet.com"}};
  JTable table=new JTable(cells,columns);

şeklinde bir kod parçası bir matristen tablo oluşturabilir. 

Bazı durumlarda tablo verisi program çalışmadan önce belli değildir veya çalışma esnasında sürekli değişiyordur. Bu durumda TableModel arayüzünü gerçekleştirerek verinin gerçek zamanda JTable nesnesine verilmesi sağlanabilir. TableModel programcının gerçekleştirebileceği bir arayüzdür. Ancak onu genişleten, sadece 3 yöntemi yazarak modelin gerçekleştirilebilmesini sağlayan AbstractTableModel sınıfı bulunmaktadır. Bunun üç yöntemi, satır sayısını veren bir yöntem, sütün sayısını veren bir yöntem ve satır ve sütunu verilen bir hücrenin değerini veren bir yöntem. Yöntemler

  public int getColumnCount();
  public int getRowCount();
  public Object getValueAt(int rowIndex, int columnIndex);

şeklinde tanımlı. Elbette bu yöntemler dışında AbstractTableModel'de tanımlı bazı yöntemler ezilebilir.

Burada tablo modeli, bir klasör içerisindeki dosya ve alt klasörleri göstersin. Bunun için tablo modeli gereçekleştiren sınıfta klasöre ait bir değişken olması yeterlidir. Örnekte üç sütun bulunmaktadır. Dosya adı, boyuru ve yaratılma tarihi. Bu bilgileri verecek şekilde tablo modelini gerçekleştirmek için

  private File directory;

  public TableModelTest(File directory){
      this.directory=directory;
  }

  public int getColumnCount(){
    return 3;
  }       
  public int getRowCount(){
    File[] files=directory.listFiles();
    return files.length;           
  }   

  public Object getValueAt(int rowIndex, int columnIndex){
    File[] files=directory.listFiles();
    File file=files[rowIndex];
    if(columnIndex==0){
      return file.getName();
    }else if(columnIndex==1){
      if(file.isFile()){
        return file.length()+" bayt";               
      }else{
        return "";
      }
    }else if(columnIndex==2){
      DateFormat format=DateFormat.getDateInstance(DateFormat.SHORT);
      Date date=new Date(file.lastModified());
      return format.format(date);
    }
    return "";
  }
       

şeklinde bir kod sınıfın içine yazlılabilir. Bu sınıfta File tipindeki nesneyi kullanarak yöntemler gerçekleştirilebilir. Sütün sayısı sabitir : 3. Satır sayısı bir klasörün altındaki dosyaların sayısıdır. Bir hücrenin değeri o satırdaki dosyanın çeşitli bilgilerinden gelir. İlk sütundaki adı, ikinci sütunda boyutu ve son sütundada oluşturulma tarihi bulunur. Oluşturma tarihi lastModifed() yöntemiyle milisaniye cinsinden bulunduğu için belli bir tarih biçiminde dönüşütürülüyor.

Gerçekleştirilmesi zorunlu üç yöntem dışında sütun alanlarının belirleyen getColumnName() yöntemi de gerçekleştirilebilir.

  private String[] culumnNames=
    {"Dosya Adı","Boyut","Son Değiştirilme Tarihi"};

  public String getColumnName(int column){
    return culumnNames[column];
  }

Burada sütun adları dizisi tanımlanmakta yöntemde sütun dizinine göre bir değer döndürülmektedir.

Java'da Table Bileşeni Kullanımı

Örneğin tamamı :

import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.awt.*;
import java.io.*;
import java.util.*;
import java.text.*;

public class TableModelTest extends AbstractTableModel{
 
  private File directory;
  private String[] culumnNames=
    {"Dosya Adı","Boyut","Son Değiştirilme Tarihi"};

  public TableModelTest(File directory){
      this.directory=directory;
  }

  public int getColumnCount(){
    return 3;
  }       
  public int getRowCount(){
    File[] files=directory.listFiles();
    return files.length;           
  }  
  public String getColumnName(int column){
    return culumnNames[column];
  }
  public Object getValueAt(int rowIndex, int columnIndex){
    File[] files=directory.listFiles();
    File file=files[rowIndex];
    if(columnIndex==0){
      return file.getName();
    }else if(columnIndex==1){
      if(file.isFile()){
        return file.length()+" bayt";               
      }else{
        return "";
      }
    }else if(columnIndex==2){
      DateFormat format=DateFormat.getDateInstance(DateFormat.SHORT);
      Date date=new Date(file.lastModified());
      return format.format(date);
    }
    return "";
  }  

  public static void main(String[] args){
    JFrame frame=new JFrame();
    frame.setBounds(100,100,400,300);
    File directory=new File("C:");
    TableModelTest model=new TableModelTest(directory);          
    JTable table=new JTable(model);
    frame.getContentPane().add(new JScrollPane(table));              
    frame.setVisible(true);
  }

}

 

Kaynak www.godoro.com/Portal/Content/Article/ArticleViewPage.aspx

Yorumunuzu Ekleyin

Java Değişken Tipleri

Byte, short, int, long, float, double, boolean, char, string

58,621 Okunma Henüz yorum yapılmamış 04/11/2009 13:11:31

Java Diziler

Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız. Java, dizi elemanlarını sırasıyla kontrol eder. Dolayısıyla arada değer atanmamış bir elemana rastlanırsa hata oluşur. Bu da cde çıkan hafıza bozulmalarını önler. Javada dizi kullanmak için ilk önce dizinin tipi verilir. Tip verilirken dizinin büyüklüğü belirtilmez

56,206 Okunma 2 Yorum 19/11/2007 15:13:25

Javada Fonksiyonlar

Değer alan ve geriye değer döndüren fonksiyonlar

54,182 Okunma Henüz yorum yapılmamış 01/04/2010 14:39:09

Stringleri Karşılaştırma

Stringler bilinen = operatörleri ile karşılaştırılmazlar, ayrıca == ve != operatörleride stringler içindeki karakterleri karşılaştırmazlar

39,729 Okunma Henüz yorum yapılmamış 18/10/2007 12:43:49

Java Da Operatörler

Aritmetik operatorler 4 işlem ve mod, arttırma operatorleri, ilişkisel operatorler, mantıksal operatorler, kısa devre mantıksal operatorler

39,260 Okunma Henüz yorum yapılmamış 02/12/2009 13:58:19

J2ee, j2se, j2me Nedir?

J2ee,j2se,j2me hakkında bilgi

35,169 Okunma 1 Yorum 21/10/2009 17:00:15 16/07/2014 17:00:35

Java Terimleri

Java, birbirinden farklı aygıtlarda çalışabilen, bu aygıtlar arasında iletişimi kolay hale getiren programlama dili ve platformudur. Java diliyle yazılmış programlar, Windows, UNIX, Mac işletim sistemi yüklü bilgisayarlarda hiç bir değişiklik yapmayı gerektirmeden çalışabilmektedirler

34,545 Okunma Henüz yorum yapılmamış 16/10/2007 13:23:36

Javada Diziler

Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen dizi erişim indisi ile erişilir. Bir dizide n tane eleman varsa dizinin uzunluğu da n kadardır; ilk elemanın indisi/konumu 0’dan başlar, son elemanı ise n-1’dir.

29,983 Okunma 1 Yorum 14/04/2008 11:01:20

for Döngüsü

28,146 Okunma Henüz yorum yapılmamış 30/12/2009 11:02:00

Java 3D

Son yıllarda çoklu ortamda ilerleme kaydeden Java, Java3D ile yüksek performans isteyen üç boyutlu grafiklerde de 'Ben varım!' diyor.

26,806 Okunma Henüz yorum yapılmamış 26/01/2009 22:23:10

while döngüsü

Dizilerin olmazsa olmazı

26,252 Okunma Henüz yorum yapılmamış 17/12/2009 10:53:28

Java Operatörleri

Mod Operatörü, Aritmetik Atama Operatörü, Arttırma Azaltma Operatörleri, Iliskisel Operatorler ve Kısa Devre Iliskisel Operatörler, Kısa devre iliskisel operatorler, ? Operatoru

26,244 Okunma Henüz yorum yapılmamış 04/12/2009 12:11:34

Javada İlk Kod

Java classpath tanımlamaları, consolda ilk program yazılması, derlenmesi, çalıştırılması aynı uygulamanın netbeansta yapılışı ve class, java ve jar dosyalarının gösterilmesi

24,700 Okunma Henüz yorum yapılmamış 27/10/2008 22:00:38

Yükleniyor...