Vetor receber o valor de um JTextField [RESOLVIDO]

Tinha coloca essa parte do código logo abaixo do InitComponents, nao deu erro nenhum, fui colocar logo abaixo da classe extends JFrame , dá erro illegal forward reference… Hahahaha… Não tá fácil não…
Mas agora clareou bem com sua explicação Samuel, nao sei como te agradecer pela atenção e ajuda camarada…

então deixa lá mesmo, ou então em baixo de:
public static void main(String[], args)

pra vc visualizar melhor, o print de como fica o código do KeyPressed:

se quiser deixa sua classe no dropbox ou similares aí eu posso ver o código completo e analisar e deixar ele comentado

ta vendo Samuel, começo o código igual a você, e dá esses erros.

Lembrando que ignorei e nao escrevi a parte do código (keylistener), e declarei as variaveis na parte da initComponents, o unico que não deu erro

passa o mouse no erro e printa pra eu ver o que fica escrito

tá vendo Samuel, mas com ctz estou fazendo merda…

kkk agora foi burrice minha, desculpa, troque:
if (e.getKeyCode() == KeyEvent.VK_ENTER) {

por:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {

e printa o próximo erro

que isso, não fala assim, além de estar ajudando… hahahaha

fiz a marcação, porque no initComponents nao dá erro, quando digito o código embaixo, no evento keypressed, ai dá erro lá também…
Obrigado Samuel

coloca as variaveis depois de fechar o metoro initComponents()

em vez de:

initComponents()
int dados...
...         //tire daqui
...
}
//e coloque aqui

amanhã eu vou tentar esse mesmo projeto no netbeans, quando eu terminar eu te passo o código

Também está dando erro Samuel…
Amanhã tento mais, e se não for incomodar, peço sua ajuda …
Boa noite, e muitissimo obrigado pela atenção e disposição em ajudar…

Ok meu amigo, muitissimo obrigado

o problema é que o netbeans não deixa essas variaveis ficarem no mesmo escopo do evento. Eu to fazendo na mão aqui e te passo(to deixando o código todo comentado pra ficar bem claro o que cada coisa tá fazendo)

preciso saber se vc quer que o ENTER faça isso só no campo ‘Valores’ ou em todos

Bom dia Samuel, meu camarada,

Era só nesse mesmo amigo, porque depois, com os valores digitados, precisarei fazer umas contas, mas ai é só colocar os valores nas outras textfields…
Muito obrigado pelo empenho em ajudar Samuel…

cole em um editor de texto, salve como OcampoosJunior.java e compile pelo terminal ou cmd com:

javac OcamposJunior.java

e execute com

java OcamposJunior

analise o código e adapte conforme a sua necessidade

//Importa as libs necessárias pra não dar nenhum erro de compilação
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

//Cria a classe
public class OcamposJunior extends JFrame {

  //Declaração de alguns componentes
//private Componente nome = new Componente();  <-- essa é a sintax
  private JPanel pnl = new JPanel();

  private JTextField txtQtde = new JTextField("3");
  private JTextField txtValores = new JTextField("0");
  private JTextField txtResultado = new JTextField();

  private JLabel lblQtde = new JLabel("Qtde de Dados a Calcular");
  private JLabel lblValores = new JLabel("Digite os Valores");
  private JLabel lblResultado = new JLabel("Valores Digitados:");
  private JLabel lblAviso = new JLabel();

  //Criação daquelas variáveis

    int qtde;
    int contador = -1; //Pra saber se o vetor deve continuar igual
    int contador2 = 0; //para limpar o JTextField
    Color cor = new Color(84, 188, 143); //+ ou - a cor que vc usou de fundo



  public OcamposJunior(){ //Construtor (PRECISA ser o mesmo nome da classe)
    setTitle("Título da sua janela");
    setSize(700, 500); //Tamanho da janela
    setLocationRelativeTo(null); //Centraliza a janela
    setDefaultCloseOperation(EXIT_ON_CLOSE); //Faz o programa fechar quando clica no 'x'
    setResizable(false); //não deixa redimensionar (se quiser deixar é só trocar 'false' para 'true')
    getContentPane().setBackground( cor ); //define a cor de fundo
    //iniciar tudo na tela
    initComponents();
  }

  public static void main(String[] args) { //Sem o método main o programa não abre
    OcamposJunior janela = new OcamposJunior(); //Instancia da própria classe
    janela.setVisible(true); //Torna a janela visível
  }

  //Instanciação dos componentes no JFrame
  public void initComponents() {
    //Cria um objeto Container com o conteúdo
    Container container = getContentPane();
    // container.setOpaque(true);
    container.setBackground(cor);
		container.setLayout(null); //Define o layout de container como nulo
//Adiciona os componentes
		container.add(pnl);
		pnl.setLayout(null);

    pnl.setBorder(BorderFactory.createTitledBorder("Entrada de Dados")); //Cria a borda com título no JPanel
    pnl.add(txtQtde);
    pnl.add(txtValores);
    pnl.add(txtResultado);
    pnl.add(lblQtde);
    pnl.add(lblValores);
    pnl.add(lblResultado);
    pnl.add(lblAviso);

    // define a posição dos componentes
  //nome.setBounds(x, y, w, h) <-- essa é a sintax (explicação abaixo)
    pnl.setBounds(20, 20, 660, 150);           // x -> onde o componente começa no eixo x (horizontal)
    txtQtde.setBounds(25, 55, 50, 20);         // y -> onde o componente começa no eixo y (vertical)
    txtValores.setBounds(300, 55, 50, 20);      // w -> é a largura que o componente vai ter
    txtResultado.setBounds(175, 100, 400, 20);  // h -> é a altura que o componente vai ter

    lblQtde.setBounds(25, 25, 200, 20);
    lblValores.setBounds(300, 25, 200, 20);
    lblResultado.setBounds(25, 100, 200, 20);
    lblAviso.setBounds(25, 125, 600, 20);

    //Adiciona os eventos de pressionar ENTER (aqui é mais complicado, vc tem que pesquisar isso separado(eventos swing))
    txtValores.addKeyListener(new KeyAdapter() {
			public void keyTyped(KeyEvent e) {

				char c = e.getKeyChar(); // c = botão que a pessoa apertar
				if(c == KeyEvent.VK_ENTER) { // se 'c' (botao q apertar) for igual a VK_ENTER(tecla ENTER)

          contador++; //aumenta o contador
          contador2++; //aumenta o contador2 (o que vai limpar o textfield)
          qtde = Integer.parseInt(txtQtde.getText()); //Converter o valor (String) do JTextField em 'int'
          double[] dados = new double[qtde];

          // if()

          dados[contador] = Double.parseDouble(txtValores.getText());

          lblAviso.setText("");
          txtResultado.setText(txtResultado.getText() + String.valueOf(dados[contador]) + " - ");
          System.out.println(String.valueOf(contador));
          System.out.println("qtde = " + String.valueOf(qtde));

          txtValores.setText("");

          if(contador < dados.length+1) {
            if(contador == dados.length-1) {
              contador = -1;
              lblAviso.setText("Aviso: Quantidade Máxima atingida. Pressione ENTER para limpar ou altere a quantidade");
              txtValores.setText("0");
            }
            if(contador2== dados.length+1) {
              txtResultado.setText("");
              contador2 = 0;
            }
          }
				}
			}
		});


  }

}

ficou assim:

vokoscreen-2017-10-27_12-30-33.mkv (499,7 KB)

Samuel, estou na faculdade agora, a noite em casa dou uma olhada ok meu amigo?
Dei uma olhada no video aqui, ficou perfeito cara… Muito obrigado desde já…Abraços e até mais tarde amigão

Só para eu entender melhor: então pelo fazer pelo Netbeans não vai ter como né Samuel?
Obrigado pela atenção e ajuda camarada

Que bom que vc gostou do código, mas acho que não da pra fazer no netbeans, porque a parte que as variáveis deveriam ficar é bloqueada no netbeans
Particularmente eu não gosto de IDEs, pq eu acho que a pessoa faz tudo arrastando e clicando e não aprende(é só meu ponto de vista). Mas vc pode usar a IDE Eclipse, ele não bloqueia nada, a única coisa é que ele não vem com o negócio pra arrastar os componentes, tem que instalar nele depois de baixar. mas a pessoa fica “livre” pra fazer o que quiser com o código, no netbeans a pessoa fica meio presa

ahh, ok Samuel…
Entendi. A noite vou dar uma olhada no código e depois te aviso blz?
O código está muito bom… perfeito… valeu mesmo hein… Muitissimo obrigado mais uma vez

O código que eu te passei anteriormente apresentou um erro na hora de trocar a qtde durante a execução, mas eu corrigi e agora ta funcionando direitinho. segue o código, video e os arquivos .java, .class e .jar:

código:

//Importa as libs necessárias pra não dar nenhum erro de compilação
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

//Cria a classe
public class OcamposJunior extends JFrame {

  //Declaração de alguns componentes
//private Componente nome = new Componente();  <-- essa é a sintax
  private JPanel pnl = new JPanel();

  private JTextField txtQtde = new JTextField("3");
  private JTextField txtValores = new JTextField("Valor");
  private JTextField txtResultado = new JTextField();

  private JLabel lblQtde = new JLabel("Qtde de Dados a Calcular");
  private JLabel lblValores = new JLabel("Digite os Valores");
  private JLabel lblResultado = new JLabel("Valores Digitados:");
  private JLabel lblAviso = new JLabel();

  //Criação daquelas variáveis

    int qtde;
    int contador = -1; //Pra saber se o vetor deve continuar igual
    int contador2 = 0; //para limpar o JTextField
    Color cor = new Color(84, 188, 143); //+ ou - a cor que vc usou de fundo



  public OcamposJunior(){ //Construtor (PRECISA ser o mesmo nome da classe)
    setTitle("Título da sua janela");
    setSize(700, 500); //Tamanho da janela
    setLocationRelativeTo(null); //Centraliza a janela
    setDefaultCloseOperation(EXIT_ON_CLOSE); //Faz o programa fechar quando clica no 'x'
    setResizable(false); //não deixa redimensionar (se quiser deixar é só trocar 'false' para 'true')
    getContentPane().setBackground( cor ); //define a cor de fundo
    //iniciar tudo na tela
    initComponents();
  }

  public static void main(String[] args) { //Sem o método main o programa não abre
    OcamposJunior janela = new OcamposJunior(); //Instancia da própria classe
    janela.setVisible(true); //Torna a janela visível
  }

  //Instanciação dos componentes no JFrame
  public void initComponents() {
    //Cria um objeto Container com o conteúdo
    Container container = getContentPane();
    // container.setOpaque(true);
    container.setBackground(cor);
		container.setLayout(null); //Define o layout de container como nulo
//Adiciona os componentes
		container.add(pnl);
		pnl.setLayout(null);

    pnl.setBorder(BorderFactory.createTitledBorder("Entrada de Dados")); //Cria a borda com título no JPanel
    pnl.add(txtQtde);
    pnl.add(txtValores);
    pnl.add(txtResultado);
    pnl.add(lblQtde);
    pnl.add(lblValores);
    pnl.add(lblResultado);
    pnl.add(lblAviso);

    // define a posição dos componentes
  //nome.setBounds(x, y, w, h) <-- essa é a sintax (explicação abaixo)
    pnl.setBounds(20, 20, 660, 150);           // x -> onde o componente começa no eixo x (horizontal)
    txtQtde.setBounds(25, 55, 50, 20);         // y -> onde o componente começa no eixo y (vertical)
    txtValores.setBounds(300, 55, 50, 20);      // w -> é a largura que o componente vai ter
    txtResultado.setBounds(175, 100, 400, 20);  // h -> é a altura que o componente vai ter

    lblQtde.setBounds(25, 25, 200, 20);
    lblValores.setBounds(300, 25, 200, 20);
    lblResultado.setBounds(25, 100, 200, 20);
    lblAviso.setBounds(25, 125, 600, 20);

    //Adiciona os eventos de pressionar ENTER (aqui é mais complicado, vc tem que pesquisar isso separado(eventos swing))
    txtValores.addKeyListener(new KeyAdapter() {
			public void keyTyped(KeyEvent e) {

				char c = e.getKeyChar(); // c = botão que a pessoa apertar
				if(c == KeyEvent.VK_ENTER) { // se 'c' (botao q apertar) for igual a VK_ENTER(tecla ENTER)

          verificar(); //Executar método verificar()

				}
			}
		});


  }

  public void verificar() { //Método verificar()
    contador++; //aumenta o contador
    contador2++; //aumenta o contador2 (o que vai limpar o textfield)
    qtde = Integer.parseInt(txtQtde.getText()); //Converter o valor (String) do JTextField em 'int'
    double[] dados = new double[qtde+1]; //Cria o vetor 'dados' com a quantidade digitada no JTextField

    dados[contador] = Double.parseDouble(txtValores.getText()); //Converte o valor(String) do textfield para double

    lblAviso.setText(""); //Define o texto no etxtfield 'lblAviso'
    txtResultado.setText(txtResultado.getText() + String.valueOf(dados[contador]) + " - "); //Define o texto como o conteúdo já existente + dados[indiceAtual]
  
    txtValores.setText("");
      if(contador == dados.length-2) { //Se contador for igual a [qtde de indices do vetor 'dados' - 2]
        lblAviso.setText("Aviso: Quantidade máxima atingida. Pressione ENTER para limpar ou altere a quantidade!"); //Só um aviso mesmo
        txtValores.setText("0");
      }
      if(contador == dados.length-1) { //Se contador for igual a [qtde de indices do vetor 'dados' - 1]
        contador = -1; //reinicia os dois contadores
        contador2 = 0;
        txtResultado.setText("");
      }

      if(contador2== dados.length+2) { //Se contador2 for igual a [qtde de indices do vetor 'dados' + 2]
        contador2 = 0; //Reinicia o contador 2
      }

  }

}

Vídeo:
Programa.mkv (694,7 KB)

Arquivos:
OcamposJunior.zip (7,9 KB)