Converter esse metodo para lista?

Tenho o código abaixo que funcionar perfeitamente exibindo os dados em uma jtable.

public List<Alternativas> findAlternativasEntities() { return findAlternativasEntities(true, -1, -1); }

[code] private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

  DefaultTableModel dtm = (DefaultTableModel) this.jTable1.getModel();
        AlternativasJpaController alt = new AlternativasJpaController();
  dtm.setRowCount(0);

  List<Alternativas> ctto =  alt.findAlternativasEntities();
    for (Iterator<Alternativas> it = ctto.iterator(); it.hasNext();) {
        Alternativas alternativas = it.next();

        Object [] rowData = {alternativas.getIdPergunta(),alternativas.getAlternativa1(),
        alternativas.getAlternativa2(),alternativas.getAlternativa3(),alternativas.getAlternativa4()};
        dtm.addRow(rowData);

[/code]
Só que preciso tbm utilizar o metodo abaixo para lista informações entrando com um INT como parâmetro, mais não consigue montar a lista.
Algué saberia me dizer como monta-lá?

public List<Alternativas> findAlternativas(Integer id) { EntityManager em = getEntityManager(); try { return (List<Alternativas>) em.find(Alternativas.class, id); } finally { em.close(); } }

Infelizmente seu método não funciona perfeitamente. Motivo? Usa o DefaultTableModel. Isso significa que:

  1. Você está duplicando dados desnecessariamente;
  2. Você está usando sincronização em excesso;
  3. Você está gastando processamento à toa;
  4. Você irá ter mais dificuldade para inserir, remover ou ordenar linhas;
  5. Seu código está macarrônico e misturando dados de negócio com a interface gráfica.

Se vai usar a JTable, vale muito a pena entender como ela funciona. Pare um tempo, aprenda a montar um TableModel, e depois conversamos sobre sua dúvida. Isso é, se ela ainda existir.

Vini
O meu código funcionou quando eu usei alt.findAlternativasEntities(); ( para trazer todos os dados ), só gostaria de saber como altero o metodo para receber um parametro Int, pois quero que retorne apenas os dados cujo o Id for igual a minha variável.

…e sobre o lance do Default já vi algumas coisas negativas mesmo, vou procurar saber mais.

De qualquer forma Valeu.

Ocorre erro?
Não encontra?
Exception?
Não retorna nada?

drsMachado,

ele retorna o erro abaixo quando uso o metodo

[code]public ListfindAlternativas(Integer id) {
EntityManager em = getEntityManager();
try {
return (List) em.find(Alternativas.class, id);
} finally {
em.close();
}

}[/code]

O erro é nessa linha return (List) em.find(Alternativas.class, id);

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: jquest.Alternativas cannot be cast to java.util.List at jquest.AlternativasJpaController.findAlternativas(AlternativasJpaController.java:114) at jquest.jEditQuest.jButton1ActionPerformed(jEditQuest.java:277) at jquest.jEditQuest.access$100(jEditQuest.java:33) at jquest.jEditQuest$2.actionPerformed(jEditQuest.java:168) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6267) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6032) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Um pouco de java básico…
Um objeto de uma classe só pode ser convertido em um objeto igual ou que contenha os mesmos atributos que o que ele possui ou, quando tratamos de tipos primitivos, o tipo a ser “casteado” deve comportar o tipo original (não se pode fazer cast de long para int, mas de int para long, sem problemas).

    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: jquest.Alternativas cannot be cast to java.util.List  

Esse erro diz isto, pois o tipo retornado pelo método é um objetodo tipo Alternativas e não uma List ou ArrayList.
Duas possibilidades, monte a tua própria lista “na unha” (receba o valor retornado, instancie a lista, coloque o objeto nela e retorne-a) ou mude o tratamento na camada correspondente, para que ele chegue em condições de popular o DefaultTableModel (ele recebe como argumento para cada linha, um array de Object…)