2012-03-08 6 views
1

ボタンをクリックしてページコンテンツを更新した後、次のページ/前のページボタンが機能しなくなる理由を理解できません。ボタンをクリックしてKindleの次/前のページボタンが機能しなくなり、ページコンテンツを更新しました。

私のサンプルプログラムのコードは以下の通りです。ページの次/前のページボタンは、Dパッドを使用してKindleのGoボタンをクリックするまで正常に機能します。その後、次/前のページボタンは何もしません。私は間違って何をしていますか?

package com.example; 

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import org.apache.log4j.Logger; 

import com.amazon.kindle.kindlet.AbstractKindlet; 
import com.amazon.kindle.kindlet.KindletContext; 
import com.amazon.kindle.kindlet.ui.KBoxLayout; 
import com.amazon.kindle.kindlet.ui.KButton; 
import com.amazon.kindle.kindlet.ui.KPages; 
import com.amazon.kindle.kindlet.ui.KPanel; 
import com.amazon.kindle.kindlet.ui.pages.PageProviders; 

public class MyKindlet extends AbstractKindlet {  
    private static Logger logger = Logger.getLogger(MyKindlet.class); 

    private KindletContext context; 
    private final KPages pages = new KPages(PageProviders.createKBoxLayoutProvider(KBoxLayout.Y_AXIS)); 

    public void create(final KindletContext context) { 
     this.context = context; 

     for (int i = 0; i < 50; i++) { 
      pages.addItem("This is item " + i); 
     } 
     logger.debug("pages: " + pages.getComponentCount()); 

     context.getRootContainer().add(pages, BorderLayout.CENTER); 

     KPanel pnlControls = new KPanel(); 
     KButton btnGo = new KButton("Go!"); 
     pnlControls.add(btnGo); 

     context.getRootContainer().add(pnlControls, BorderLayout.SOUTH); 

     btnGo.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       EventQueue.invokeLater(new Runnable() { 
        public void run() { 
         addMoreItems("Yet another item "); 
        } 
       }); 
      } 
     }); 

     addMoreItems("Another item "); 
    } 

    private void addMoreItems(String prefix) { 
     for (int i = 0; i < 50; i++) { 
      pages.addItem(prefix + i); 
     } 
    } 

    public void start() { 
    }  

    public void stop() { 
    }  

    public void destroy() { 
    } 
} 

開発/テスト環境:

KDK API 1.0 
Kindle Keyboard (Kindle 3) emulator 
JDK6/JRE6 
Eclipse Indigo SR1 
JDK compliance level 1.4 

答えて

1

我々はKPagesコンテナがフォーカスを失ったときに、この問題を見てきました。呼び出してみてください

pages.requestFocus(); 
+0

それはトリックでした。ありがとう! – rob

関連する問題