Merhaba arkadaşlar, SpinnerListModel sınıfından bir sınıf türettim kod zaten basit ama 'spinnerlist' te bir kere listenin sonuna geldimi orda kalıyor devam etmiyor yani yazdığım nextItem ve previousItem fonksiyonları çalışmıyor.

 public class Deneme{
 public static void main(String...arg){

JFrame  f=new JFrame();

ListModel model=new ListModel(new String[]{"red","blue","green"});
     JSpinner spinner=new JSpinner(model);

f.add(spinner);
f.setSize(300,300);
f.setVisible(true);
 }

   }
  class ListModel extends SpinnerListModel{
ListModel(Object[]items){
   super(items);
   }
       public Object nextItem(Object o){
    List l=getList();
    int index=l.indexOf(o);
    index=(index>=l.size()-1)? 0:index+1;
    return l.get(index);

}
    public Object prvItem(Object o){
    List l=getList();
    int index=l.indexOf(o);
     index=(index<l.size()-1)? 0 :index-1;
      return l.get(index);

         }

          }

soruldu: 27 Tem '13, 08:53

ali's gravatar image

ali
5457
cevap kabul oranı: 0%

değiştirildi: 04 Ağu '13, 04:02

rahmanyazgan's gravatar image

rahmanyazgan ♦
4.4k83559


Ben galiba senin asil sorunu anladim:

Öncelikle sunu söyleyeyim ki, SpinnerListModel sinifindaki metodlari override ettigini zannetmissin ancak gercek öyle degil. Senin yazdigin metodlarin ismi farkli. Halbuki

public Object getPreviousValue( )

ve

public Object getNextValue( )

metodlarini ovverride etmen gerekiyordu.

import java.util.List;

import javax.swing.JFrame;
import javax.swing.JSpinner;
import javax.swing.SpinnerListModel;

public class Deneme
{

    public static void main( String... arg )
    {

        JFrame f = new JFrame();

        ListModel model = new ListModel( new String[] { "red", "blue", "green","yellow", "black" } );
        JSpinner spinner = new JSpinner( model );

        f.add( spinner );
        f.setSize( 300, 300 );
        f.setVisible( true );
    }

}

class ListModel extends SpinnerListModel
{
    private static final long serialVersionUID = 1L;

    ListModel( Object[] items )
    {
        super( items );
    }

    public Object getNextValue( )
    {
        List l = getList();
        int index = l.indexOf( getValue() );
        index = (index >= l.size() -1) ? 0 : index + 1;
        System.out.println( "getNextValue()" + index);

        return l.get( index );

    }

    public Object getPreviousValue( )
    {
        List l = getList();
        int index = l.indexOf( getValue() );
        index = (index < 1 ) ? l.size()-1 : index - 1;
        System.out.println("getPreviousValue()" + index);
        return l.get( index );

    }

}

Eger yanlis yazmadiysam yukaridaki kod senin isini görecektir.

Kolay gelsin, basarilar. :-)

permanent link

cevaplandı: 27 Tem '13, 19:06

cakiral's gravatar image

cakiral
1.7k224351
cevap kabul oranı: 18%

Ben programi calistirdigimda ok tuslari ile basa ve sona gidebiliyorum. Yani next/previous calisiyor. Sorunun ne oldugunu tam anlayamadim.

(27 Tem '13, 09:20) cakiral cakiral's gravatar image

Cakıral hocam merhaba burdaki örneğin aynısını yapmıyorum sorun şu ki 3 eleman sonra liste bitince artık ok tuşları çalışmıyor yani tekrar başa dönmüyor Baktığım örnekete düzgün çalışıyor halbuki

(27 Tem '13, 10:09) ali ali's gravatar image

Ben senin kodunu kullandim calisiyor. O zaman calismayan kodu bir ekleyebilir misin. Ona göre degerlindirirz.

(27 Tem '13, 13:09) cakiral cakiral's gravatar image

Hocam bu zaten çalışmıyan kod hiç birşey anlamadım bende mi sorun var diye kodu aynen aldım tekrar yapıştırdım daha önceki gibi sırasıyla red,blue,green geliyor tıkladıça ama daha sonra tekrar başa dönüp devam etmiyor orda kalıyorYani siz çalıştırınca atıyorum 10 kere ileri diyebiliyormusunuz

(27 Tem '13, 14:17) ali ali's gravatar image

Dostum bende denedim şimdi herhangi bir sorun yok, program işlevini gerçekleştiriyor.

(27 Tem '13, 16:33) jackk jackk's gravatar image

Kafayı yicem resmen bende nie çalışmıyor ki.Ide'ile alakalı olmas ki herhalde

(27 Tem '13, 18:34) ali ali's gravatar image

Hocam o zaman ben mallıkta son nokta durumuna düşüyorum Çünkü ben bunları yazarın o sınıftan aldığını bilmiyordum kendi yazdı sanıyordum Zamanınızı aldım boş yere

(28 Tem '13, 13:23) ali ali's gravatar image

Yok be kardesim. Takma kafani. Senin ugrasman ve cözümü bulmakta gayret ve israr etmen cok güzel. Seni tebrik ederim! :-)

(28 Tem '13, 14:37) cakiral cakiral's gravatar image
8 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×1

Soruldu: 27 Tem '13, 08:53

Görüntüleme: 441 kez

Son güncelleme: 07 Ağu '13, 06:40

powered by BitNami OSQA