estou usando o jbuilder e preciso preencher o conteúdo de um jList em tempo de execução. Sei q uma forma de colocar valores p/ ele e passando um array p/ o constructor + neste caso eu não posso fazer isso.
importjava.util.ArrayList;publicclassTesteextendsjavax.swing.JFrame{publicTeste(){initComponents();}privatevoidinitComponents(){jTextField1=newjavax.swing.JTextField();jScrollPane1=newjavax.swing.JScrollPane();jList1=newjavax.swing.JList();jMenuBar1=newjavax.swing.JMenuBar();getContentPane().setLayout(null);setTitle("Teste da Aplicau00e7u00e3o");addWindowListener(newjava.awt.event.WindowAdapter(){publicvoidwindowClosing(java.awt.event.WindowEventevt){exitForm(evt);}});jTextField1.addKeyListener(newjava.awt.event.KeyAdapter(){publicvoidkeyPressed(java.awt.event.KeyEventevt){jTextField1KeyPressed(evt);}});getContentPane().add(jTextField1);jTextField1.setBounds(70,40,200,20);jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);jScrollPane1.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);jScrollPane1.setViewportView(jList1);getContentPane().add(jScrollPane1);jScrollPane1.setBounds(80,93,180,110);setJMenuBar(jMenuBar1);java.awt.DimensionscreenSize=java.awt.Toolkit.getDefaultToolkit().getScreenSize();setBounds((screenSize.width-500)/2,(screenSize.height-400)/2,500,400);}privatevoidjTextField1KeyPressed(java.awt.event.KeyEventevt){if(evt.getKeyCode()==evt.VK_ENTER){arraylist.add(jTextField1.getText());jTextField1.setText(null);jList1.setModel(newjavax.swing.AbstractListModel(){publicintgetSize(){returnarraylist.size();}publicObjectgetElementAt(inti){returnarraylist.get(i);}});}}privatevoidexitForm(java.awt.event.WindowEventevt){System.exit(0);}publicstaticvoidmain(Stringargs[]){newTeste().show();}privateArrayListarraylist=newArrayList();// Variables declaration - do not modifyprivatejavax.swing.JListjList1;privatejavax.swing.JMenuBarjMenuBar1;privatejavax.swing.JScrollPanejScrollPane1;privatejavax.swing.JTextFieldjTextField1;}
rfpsatin
Legal, adaptei o código a minha necessidade de funcionou.
posso te pedir uma coisa?
me explica melhor o funcionamento desta parte do código!!
private void jTextField1KeyPressed (java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == evt.VK_ENTER) {
arraylist.add(jTextField1.getText());
jTextField1.setText(null);
jList1.setModel(new javax.swing.AbstractListModel() {
public int getSize() { return arraylist.size(); }
public Object getElementAt(int i) { return arraylist.get(i); }
});
}
}
Estou acostumado com Delphi e esperava algo como
jList1.itens.add("teste')
e este exemplo q vc me mandou, apesar de funcionar, não compreendi perfeitamente o funcionamento.