jks1903 15 de mar. de 2013
Pelo que vi, a cada clique no botao jButton1 a sua variavel esta sendo reinstanciada.
Nessa linha
ncf [ qtde ] = new NovoCustoFunc ();
Se voce quer manter os valores, não poderá reinstanciar a variável a cada clique.
Mas conforme voce mesmo disse, arrays não é a melhor forma. Um objeto funcionario armazenado em uma lista além de ser o ideal, seria muito mais facil a implementação.
yurifw 15 de mar. de 2013
tenta colocar em um ArrayList:
vc declara o ArrayList, mas n declare dentro de nenhum metodo se n ele fica local:
ArrayList < NovoCustoFunc > funcionarios = new ArrayList <> ();
no metodo do botao vc faz o seguinte:
NovoCustoFunc n = new NovoCustoFunc ();
// seta os campos da variavel n
funcionarios . add ( n );
ArrayList tem varios metodos pra vc trabalhar com listas, facilita bastante, de uma olhada na documentação da classe:
http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
xandelol 15 de mar. de 2013
Agora eu estou utilizando ArrayList como sugerido, mas o problema continua :? …
Meu código tá assim:
List < NovoCustoFunc > listanovocf = new ArrayList < NovoCustoFunc > ();
private void jButton1ActionPerformed ( java . awt . event . ActionEvent evt ) {
NovoCustoFunc ncf = new NovoCustoFunc ();
ncf . nomefunc = jTextField1 . getText ();
ncf . gs = jTextField2 . getText ();
ncf . cc = Integer . parseInt ( jTextField3 . getText ());
ncf . atividade = jTextField4 . getText ();
ncf . valor = Double . parseDouble ( jTextField5 . getText (). replaceAll ( "," , "." ));
listanovocf . add ( ncf );
Teste ( "Testando" , listanovocf ); //Testar a saída
jTextField1 . setText ( "" );
jTextField2 . setText ( "" );
jTextField3 . setText ( "" );
jTextField4 . setText ( "" );
jTextField5 . setText ( "" );
}
public void Teste ( String titulo , Collection < NovoCustoFunc > collection ){
System . out . println ( titulo );
for ( NovoCustoFunc str : collection ) {
System . out . print ( str . nomefunc );
System . out . print ( " || " + str . gs );
System . out . print ( " || " + str . cc );
System . out . print ( " || " + str . atividade );
System . out . println ( " || " + str . valor );
}
}
Eu insiro dois funcionários, por exemplo Alexandre, e Antonelli
Deveria sair:
Alexandre ...
Antonelli ...
Mas sai assim:
Antonelli ...
Antonelli ...
yurifw 15 de mar. de 2013
acho que o erro esta em outra parte do codigo, vc ta usando esse arraylist em algum outro lugar? pq se n, nos dois estamos vacilando feio e n estamos vendo um erro bem obvio xD
tem mais alguma parte relevante do codigo? se tiver posta ai
xandelol 15 de mar. de 2013
Minha classe é essa aqui:
/***********************************\
{*@author Alexandre Antonelli Cardoso*}
{*RG Funcional: 910299****************}
\***********************************/
package fechamento.zfsd ;
//<editor-fold defaultstate="collapsed" desc=" Imports ">
import java.awt.Image ;
import java.awt.Toolkit ;
import java.util.ArrayList ;
import java.util.Collection ;
import java.util.List ;
//</editor-fold>
public class NovoCusto extends javax . swing . JFrame {
//<editor-fold defaultstate="collapsed" desc=" Variáveis GLOBAIS ">
List < NovoCustoFunc > listanovocf = new ArrayList < NovoCustoFunc > ();
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" NovoCusto ">
public NovoCusto () {
initComponents ();
setLocationRelativeTo ( null );
//<editor-fold defaultstate="collapsed" desc=" Ícone do programa ">
Image imagemTitulo = Toolkit . getDefaultToolkit (). getImage ( "Imagem" );
this . setIconImage ( imagemTitulo );
//</editor-fold>
setDefaultCloseOperation ( NovoCusto . HIDE_ON_CLOSE );
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" Botão"Resetar" ">
private void jButton3ActionPerformed ( java . awt . event . ActionEvent evt ) {
jTextField1 . setText ( "" );
jTextField2 . setText ( "" );
jTextField3 . setText ( "" );
jTextField4 . setText ( "" );
jTextField5 . setText ( "" );
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" Botão"Sair" ">
private void jButton2ActionPerformed ( java . awt . event . ActionEvent evt ) {
this . dispose ();
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" Botão"Salvar" ">
private void jButton1ActionPerformed ( java . awt . event . ActionEvent evt ) {
NovoCustoFunc ncf = new NovoCustoFunc ();
ncf . nomefunc = jTextField1 . getText ();
ncf . gs = jTextField2 . getText ();
ncf . cc = Integer . parseInt ( jTextField3 . getText ());
ncf . atividade = jTextField4 . getText ();
ncf . valor = Double . parseDouble ( jTextField5 . getText (). replaceAll ( "," , "." ));
listanovocf . add ( ncf );
Teste ( "Teste" , listanovocf );
jTextField1 . setText ( "" );
jTextField2 . setText ( "" );
jTextField3 . setText ( "" );
jTextField4 . setText ( "" );
jTextField5 . setText ( "" );
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" main ">
public static void main ( String args [] ) {
java . awt . EventQueue . invokeLater ( new Runnable () {
@Override
public void run () {
new NovoCusto (). setVisible ( true );
}
});
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc=" Teste ">
public void Teste ( String titulo , Collection < NovoCustoFunc > collection ){
System . out . println ( titulo );
for ( NovoCustoFunc str : collection ) {
System . out . print ( str . nomefunc );
System . out . print ( " || " + str . gs );
System . out . print ( " || " + str . cc );
System . out . print ( " || " + str . atividade );
System . out . println ( " || " + str . valor );
}
}
//</editor-fold>
}
O pior é que eu uso o ArrayList só nessa classe.
xandelol 18 de mar. de 2013