Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Yine yeni yeniden bir java sorusuyla karsınızdayım:)


Öne çıkan mesajlar

Mesaj tarihi:

while(tableCount<=40){

jTable4.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {
{ reg[0], reg
[1], reg
[2], reg
[3], reg
[4]},

{reg
[0], reg
[1], reg
[2], reg
[3], reg
[4]},

{reg
[0], reg
[1], reg
[2], reg
[3], reg
[4]},

{reg
[0], reg
[1], reg
[2], reg
[3], reg
[4]}
},
new String [] {
"Address", "Title 2", "Title 3", "Title 4", "Title 5"
}
));
try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();
}

tableCount+=6;

}



Yapmaya calıstıgım sey su,table'a gelen degerleri saniyede bir update etmeye calısıyorum, fakat hep once loopu dondurup tableCountu 40'a esitliyor ondan sonra degerleri yazdırıyo.Ne yapmalı nasıl yapmalı yardım:)

Mirage: Code tag'ı kullanalım ki kodu okuyabilelim :)
Mesaj tarihi:
Bunda yardimci olamayacagim hic user interface ile alakam yok :)

Ama mantiken tableCount+=6 nin hemen altina table.Update(), refresh() veya her ne haltsa artik swing'de onun gibi bisey cakman lazim ki update etsin. Baksana bi hangi methodlar var.
Mesaj tarihi:
Nette baktim, listener koyuyormussun (veya hali hazirda varmis artik)
sonra fireTableDataChanged() veya fireTableCellUpdated falan cakiyormussun (eger kullandigin sey bi TableModel ise, ve tekrardan uyariyorum swing e dokunmadim hayatimda :) )

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/AbstractTableModel.html

Burdaki tutorial'a goz at bence
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#simple
Mesaj tarihi:
TableModel'i kullanış şeklinde yanlış öncelikle. While döngüsü içinde her iterasyonda setModel ile modeli tamamen değiştiriyorsun. Modeli başlangıçta bir kere koyacaksın. Sonra da yapacağın değişiklikleri doğrudan model üstünde yapacaksın. Sen yaptığın değişiklikleri tableCount üstünde yapıp sonra yeni model yaratıyorsun.

Şu forumda aynı şeyi JList için anlatmıştım: http://forum.paticik.com/read.php?6,4090393,4090393#msg-4098065

Aynı şey JTable için de geçerli. Takıldığın bir yer olursa sorarsın yine.

Edit: Yok ben yine de böyle yapcam diyorsan. Thread.sleep öncesinde jTable4.updateUI() ile bir update yapmayı deneyebilirsin.
Mesaj tarihi:
peki table atıyorum a b c seklinde tanımlanmış olsun.Ben bunun icindeki
d e f
bilgileri herhangi bir komutla tekrardan set edebilir miyim?

Edit:d e f, a b c nin altında olacak 2ye row 3 columnlık bir table düşün,
düzgün cıkmamıs.
Mesaj tarihi:
Ya benim temelde bir eksiklik kalmıs sanırım.Simdi soyle bir sorum olacak.Simdi mesela benim yazdıgım ilk kodda, once degerleri degistirip sonra interfacei goruntuluyor.Bunu once interfacei goruntule ,sonra degistir seklinde nasıl degistirilir, dedigim gibi o kısımda buyuk bir sorun var sanırım dusundum dusundum isleyisini tam olarak canlandıramadım kafamda
Mesaj tarihi:
Yukarda anlattığım gibi, modeli kullanışın yanlış olduğundan güncellenmiyor arayüzün. Değişikliklerini model üstünde yaparsan sorunu çözersin. Yukarda verdiğim linkteki örneğe Thread.sleep ekleyince istediğin gibi bir şey oluyor mesela:

Thread.sleep ile güncellenen JList


import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;


public class MainFrame extends JFrame {

private DefaultListModel members = new DefaultListModel();

public MainFrame() {
super("Hello Pati!");
this.setSize(400, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new JList(members));
}

public static void main(String ... args) throws InterruptedException {
MainFrame frame = new MainFrame();
frame.setVisible(true);

while (true) {
Thread.sleep(1000);
frame.members.addElement("Hasan");
}

}

}



Bu JList için. JTable için de DefaultListModel yerine DefaultTableModel kullancaksın vs. API'ye bakman lazım detaylar için.
×
  • Yeni Oluştur...