Galera, sou iniciante e estou tentando aprender a programar em java fazendo uns exercicios. Estou sofrendo bastante, mas estou achando legal. Sera que alguem pode me ajudar nesse codigo abaixo? Adicionei uma list (que consequentemente adicionou uma scrollPane, nao entendi isso…) porem o prorama gera um erro. alguem pode me explicar como faço isso funcionar? a duvida é idiota, mas ainda estou aprendendo… ;D
Se vc esta tentando adicionar items para serem exibidos na lista o correto é usar um model
JList jlist = new JList();
DefaultListModel model = (DefaultListModel) jlist.getModel();
model.addElement("abc");
jlist.setModel(model);
ou dar um set na listData dele
Object []abc = new Object[]{"1", "2"};
jlist.setListData(abc);
K
Kawa
vixi… como assim instalou o jlist? eu adicionei ele na jframe atraves do componente swing… tipo…nao manjo quase nda… mas c tivesse q improtar apareceria a opçao pra eu importar lah no erro apontado, nao apareceria? eu uso o netbeans…
K
Kawa
kra… nao sei como funciona esse model… hehehe
JonasZzZz
ah…
é instanciar(essa palavra é muito importante, aprenda sobre ela)… nao instalar…
eu não entendo nada swing/awt… foi um chute…
mas acho que o devel te deu a solução…
JonasZzZz
instanciar é fazer algo como…
Blablablablablabla=newBlablabla();
surfzera
cara voce deve criar um objeto lista primeiro antes de adicionar alguma coisa a ela … tipo o nome que vc está tentando adicionar. Para criar a lista faça:
ArrayList list = new ArrayList();
K
Kawa
mas quando eu arrasto a list da barra de componentes swing para minha jframe, eu nao estou criando a list? nao entendi…
JonasZzZz
ele ta te confundindo… não é list… é JList…
ele ta falando de collections… num tem nada a ver…
K
Kawa
jonazz me explica ai entao kra… por favor
Ayanami
Você já tentou o que o devel.andrerocha disse?
devel.andrerocha:
Se vc esta tentando adicionar items para serem exibidos na lista o correto é usar um model
JList jlist = new JList();
DefaultListModel model = (DefaultListModel) jlist.getModel();
model.addElement("abc");
jlist.setModel(model);
ou dar um set na listData dele
Object []abc = new Object[]{"1", "2"};
jlist.setListData(abc);
K
Kawa
já tentei sim… só se eu nao fiz certo… só sei que nao deu…
@param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new UsoWhile().setVisible(true);
}
});
}
É o codigo que eu havia feito antes… nao coloquei ai o que o devel.andrerocha havia dito… eu cheguei a testar o q ele falou, mas nao deu certo, nao sei c foi pq eu coloquei errado ou c nao da certo mesmo. Voce pode me ajudar?
Ayanami
Se você fizer certinho, funciona.
já vou até fazer o trabalho de adaptar pro seu código: DefaultListModel model = (DefaultListModel)jList1.getModel(); // criando um novo objeto model a partir do model atual da lista
model.addElement("abc"); // adicionando um elemento a esse model
jList1.setModel(model); // definindo o model da JList como esse "model atualizado"Agora é só encaixar e adaptar…
K
Kawa
vou tentar pera ae
K
Kawa
ah kra… sei que é pedir muito, mas será que voce nao pode fazer esse programinha pra mim e mostrar o codigo? Eu programava em delphi antes, e era só jogar os componentes na frame e usar as propriedades, bem diferente de java. Se vc me mostrar o codigo completo eu vou tentar compreender melhor… De qualquer forma, muito obrigado por tentar me ajudar.
mas acho que a logica toda do seu programa ta errada… num é só essa parte…
o que o programa tem que fazer??
num fico muito claro para mim…
K
Kawa
eh assim… eu estava fazendo uns exercicios pra aprender a usar comandos de repetiçao em java, usando o netbeans. Pra isso, eu criei uma interface usando os componentes swing com: 1 jtextfield, 1 jlist e um botao. Ao escrever no textfield e apertar o botao, o texto escrito iria ser adicionado 10 vezes (ciclo while ) na jlist. Era isso que eu queria fazer…
JonasZzZz
caraio… consegui…
publicclassUsoWhileextendsjavax.swing.JFrame{publicUsoWhile(){initComponents();}@SuppressWarnings("unchecked")privatevoidinitComponents(){jTextField1=newjavax.swing.JTextField();jButton1=newjavax.swing.JButton();jLabel1=newjavax.swing.JLabel();jScrollPane1=newjavax.swing.JScrollPane();jList1=newjavax.swing.JList();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jButton1.setText("Inserir");jButton1.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jButton1ActionPerformed(evt);}});jLabel1.setText("Nome:");jScrollPane1.setViewportView(jList1);javax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(105,105,105).addComponent(jButton1).addContainerGap(218,Short.MAX_VALUE)).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addContainerGap().addComponent(jLabel1,javax.swing.GroupLayout.PREFERRED_SIZE,46,javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jScrollPane1,javax.swing.GroupLayout.PREFERRED_SIZE,209,javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap()).addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup().addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE,165,javax.swing.GroupLayout.PREFERRED_SIZE).addGap(155,155,155)))));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(52,52,52).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jButton1).addGap(31,31,31).addComponent(jScrollPane1,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(61,Short.MAX_VALUE)));pack();}// </editor-fold>privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){// TODO add your handling code here:intcontador=0;Stringnome;nome=jTextField1.getText();Stringstrings[]=newString[10];while(contador<10){strings[contador]=nome;contador++;}jList1.setListData(strings);jList1.getModel();}/** * @param args the command line arguments */publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newUsoWhile().setVisible(true);}});}// Variables declaration - do not modifyprivatejavax.swing.JButtonjButton1;privatejavax.swing.JLabeljLabel1;privatejavax.swing.JListjList1;privatejavax.swing.JScrollPanejScrollPane1;privatejavax.swing.JTextFieldjTextField1;// End of variables declaration}
mas cara… num começa estudando java por swing não… pior coisa que vc faz…
flws…
K
Kawa
pq? falaram q é melhor começar por swing…
O que voce aconselha?
bom, valeu kra, valeu mesmo!
abrasss
JonasZzZz
ah… e pela otra solução que o cara ta falando pra vc…
eu não consegui… da um erro de cast…
JonasZzZz
swing em java é mto complicado pra quem nunca viu java…
tem mto conceito por traz…
aconselho voce a comprar um livro chamado Como Programar Java da Deitel…
ou senão baixa a apostila da Caelum na internet… é gratuita…
JonasZzZz
ah… nem precisa da linha 61 do código que eu te enviei… viajei…
qlq coisa é só gritar ae no forum…
fui… to com sono…