Vetor receber o valor de um JTextField [RESOLVIDO]

Boa Tarde galera,
É o seguinte, tenho um trabalho para fazer em Java sobre a matéria de Estatistica: um programa que o usuário entre com os valores da “pesquisa”, e desses valores eu calcular a variancia do conjunto de dados. Em C eu fiz, porém em Java, eu queria criar algo que o usuário entra com a quantidade de dados que pretende calcular: Exemplo: Ele diz que tem 6 dados para calcular, então ele digitaria os seis valores na textfield, e esses valores fossem para um vetor para depois eu fazer os calculos necessários.
To dizendo isso porque eu nao queria colocar várias textfields no form, porque se o usuario entrasse com 10 na quantidade por exemplo, ficaria muito poluído o form(JFrame). A cada dado digitado, assim que eu apertasse enter, jogaria esse valor no vetor, apagaria o textfield e digitaria outro, e assim até acabar o For.
É possível fazer isso? algum método mais fácil? Alguém pode me dar uma luz?

obrigado a todos

Tem sim e não precisa usar o For, já tentou pesquisar?

Enter no jtextfield

Uma alternativa seria usar o JTextArea, facilitaria pois não precisaria criar uma forma de alterar, exibir ou remover os valores adicionados, mas teria que implementar uma forma de separar os valores.

Vou dar uma olhada no link que colocou diego, mas sou novato, por isso pedi ajuda aqui

valeu

Não sei se entendi corretamente o que você está tentando fazer, mas acho que o que você precisa seria algo do tipo:

double[] seuVetor; //supondo que seu vetor seja um double
int qtdeDados = 0; //Para depois aumentar o indice do vetor

//Método que identifica qnd ENTER foi pressionado(com o JTextField em foco)
seuJTextField.addKeyListener(new KeyAdapter() {  
  public void keyPressed(KeyEvent e) {  
    if (e.getKeyCode() == KeyEvent.VK_ENTER) {  

      //Atribui o valor ao proximo indice do vetor a cada vez que é executado
      seuVetor[qtdeDados] = Double.parseDouble(seuJTextField.getText()); //se não for double esta linha será um pouco dioferente
      qtdeDados++; //aumenta o indice do vetor para atribuir o valor a cada vez q o evento é disparado
      seuJTextField.setText(""); //limpa o conteúdo do seu JTextField

   }  
 }  
});

se não for isso, por favor esclareça melhor ou nos mostre um pouco do seu código para termos uma noção melhor do que você precisa

Samuel, muito obrigado pela atenção. é mais ou menos isso sim, tentei colocar esse código seu mais da erro na hora de passar para o vetor: Segue uma imagem da tela para talvez ajudar a entender:


o que estou pretendendo, é que o usuário entre com a quantidade de dados, ok? depois, no campos valores eles entre com os valores, e a cada valor digitado, ele pressione o enter, e guarde esse valor no vetor, e por exemplo, ele digitou 3 na qtde de dados, entao, ao digitar tres valores(um de cada vez, apertando o enter armazenando no vetor), eu possa exibir esse vetor no textfield maior…
Não sei se fui claro ainda, mas espero que sim…

estou travado no código, pois estou iniciando em Java:
private void valoresFormattedTextFieldKeyPressed(java.awt.event.KeyEvent evt) {

    String quantidadeStr = qtdeDadosFormattedTextField.getText();        
    double quantidadeDouble = Double.parseDouble(quantidadeStr);        
    String valoresStr = valoresFormattedTextField.getText();
    double valoresDouble = Double.parseDouble(valoresStr);
            
    double[] dados = new double[100]; // Verificar lógica  
    int qtdeDados = 0;
          
    if(evt.getKeyCode() == KeyEvent.VK_ENTER){
        
        
        valoresFormattedTextField.setText("");            
        
    }
    
    
    
}                                                    

Obrigado

Por favor não entenda mal, só estou tentando esclarecer, não estou criticando seu código, ok?

Essa linha não verifica a lógica, ela só cria um vetor com 100 índices

e a linha:
if(evt.getKeyCode() == KeyEvent.VK_ENTER){

precisa estar dentro do método que faz funcionar quando aperta ENTER, ela sozinha só vai ficar vazia

e se “int qtdeDados = 0” estiver dentro do método, ela vai ser reiniciada e será sempre 0, por isso, deixe ela fora do método

Com a imagem e a explicação ficou melhor de entender, tente fazer assim:

int qtde = Integer.parseInt(qtdeDadosFormattedTextField.getText()); //Converter o valor (String) do JTextField em 'int'
  
double dados[] = new double[qtde]; //Criar um vetor com a quantidade que a pesoa digitou no 1º JTextField

int qtdeDados = 0; //Para depois aumentar o indice do vetor

//Método que identifica qnd ENTER foi pressionado(com o JTextField em foco)
valoresFormattedTextField.addKeyListener(new KeyAdapter() {  
  public void keyPressed(KeyEvent e) {  
    if (e.getKeyCode() == KeyEvent.VK_ENTER) {  

      //Atribui o valor ao proximo indice a cada vez que é executado
      dados[qtdeDados] = Double.parseDouble(valoresFormattedTextField.getText()); //se for double
      qtdeDados++; //aumenta o indice do vetor para atribuir o valor a cada vez q o evento é disparado
      valoresFormattedTextField.setText(""); //limpa o conteúdo do seu JTextField

      for(int i = 0; i < dados.lenght; i++ ) {
        textfield_maior.setText(String.valueOf(dados[i] + ", "));//imprime os valores digitados no JTextField maior
      }

    }  
  }  
});

Boa noite Samuel,

Desculpa, essa linha de comentário, coloquei pra eu analisar depois, e acabei esquecendo de apagar, hahaha, perdao. e a linha de comando está dentro do comando keypressed, me perdoe pela falta de atenção. Cheguei agora da faculdade, e vou tentar mais tarde. Vou tentar seu código ok amigo? e não precisa se preocupar, caso tenha criticas sobre meus códigos, pode falar a vontade, sou iniciante, e quero aprender o quanto mais melhor…
Obrigado por sua ajuda meu amigo

Outra coisa Samuel, esse evento, não tem no netBeans(estou usando ele), tem problema eu usar o keypressed? qual a diferença?

É que pra usar o KeyPressed precisa do KeyListener. Exemplo:

TextField.addKeyListener(new KeyListener(){
            @Override
            public void keyPressed(KeyEvent e) {
                oq vai acontecer qnd pressionar
            }   

o KeyListener é como se fosse a classe pai de todos os eventos do teclado, e o keypressed (como também é um evento do teclado(pressionar uma tecla)) tambem precisa do KeyListener pra funcionar, entendeu?

Manda um print do que aparece no netbeans

Uma coisa que não entendo Samuel, na paleta eventos do netbeans, nao tem o addkeylistener… Tenho que criar na “unha” esse evento? Seria uma classe que eu crio?

Obrigado pela atenção Samuel

Desculpa a encheção Samuel, mais por exemplo, esse código, onde exatamente coloco ele, dentro do evento do textfield?
fora de qualquer classe? estou meio perdido nessa parte ainda… Desculpa a ignorancia

no caso vc clica com o direito no textfield, vai em:

eventos -> key -> keyTyped

e cola o códogo:

if (e.getKeyCode() == KeyEvent.VK_ENTER) {  

      //Atribui o valor ao proximo indice a cada vez que é executado
      dados[qtdeDados] = Double.parseDouble(valoresFormattedTextField.getText()); //se for double
      qtdeDados++; //aumenta o indice do vetor para atribuir o valor a cada vez q o evento é disparado
      valoresFormattedTextField.setText(""); //limpa o conteúdo do seu JTextField

      for(int i = 0; i < dados.lenght; i++ ) {
        textfield_maior.setText(String.valueOf(dados[i] + ", "));//imprime os valores digitados no JTextField maior
      }

    }

não é encheção não kkk, eu também sou iniciante e quando respondo as perguntas eu também aprendo, e eu realmente gosto disso.

Essa parte do código você coloca no método main(se o resto do programa também estiver dentro do main)

Valeu mesmo Samuel, obrigado mais uma vez pela atenção e educação…

Mudando de Assunto, você tem , participa de algum grupo de whatts sobre java para iniciantes?

não gosto de whatts mas entrava em um que tinha no discord. se você tem discord eu posso procurar o servidor dnv

Imagina, não precisa se preocupar com isso não… Quando precisar(quase sempre, hahaha), peço ajuda aqui mesmo entao…
Valeu meu amigo

precisando pode me marcar, se for algo que estiver ao meu alcance… :grinning:

mas você conseguir fazer o esquema do vetor?
se conseguir, por favor marque o tópico como resolvido

ainda nao consegui cara, na verdade estou perdido, apesar de sua preciosa ajuda.

nao estou sabendo onde coloco os códigos:
//Método que identifica qnd ENTER foi pressionado(com o JTextField em foco)
valoresFormattedTextField.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {

por exemplo essa parte, em qual evento coloco o código, vou precisar criar uma classe, evento na unha?

mas já ja chego la… hahahhaa

valeu Samuel

são nesses lugares mesmo @SamuelLira99?

não vai precisar criar nhuma classe ou evento na unha não kkk.
Você colocou as variáveis dentro do construtor. para garantir que as variáveis sejam de escopo global, coloque elas embaixo de:

public class NomeDaSuaClasse extends JFrame {

ignore essa partedo código abaixo:

//Método que identifica qnd ENTER foi pressionado(com o JTextField em foco)
valoresFormattedTextField.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {

onde foi criado o evento vai ficar assim:

private void valoresFormattedTextFieldKeyPressed(java.awt.event.KeyEvent evt) {

if (e.getKeyCode() == KeyEvent.VK_ENTER) {  

      dados[qtdeDados] = Double.parseDouble(valoresFormattedTextField.getText()); 
      qtdeDados++; //aumenta o indice do vetor para atribuir o valor a cada vez q o evento é disparado
      valoresFormattedTextField.setText(""); //limpa o conteúdo do seu JTextField

      for(int i = 0; i < dados.lenght; i++ ) {
        textfield_maior.setText(String.valueOf(dados[i] + ", "));//imprime os valores digitados no JTextField maior
      }

    }
}