Armazenar informação de um TextField em variaveis diferentes

Salve galera!

Estou tentando descobrir como armazenar uma informação digitada dentro deum TextField em variaveis diferentes, por exemplo eu digito dentro do JTextField : “123”, e depois armazeno essa informação da seguinte forma :

int num1 = 1
int num2 = 2
int num3 = 3

como posso separar os números que foram digitados no TextField e armazena-los separadamente?

Um método pra extrair os dígitos de um número:

public static byte[] extrairDigitos(long numero) {
    if (numero < 0) {
        throw new IllegalArgumentException("numero não pode ser negativo");
    }
    if (numero < 10) {
        return new byte[] { (byte) numero };
    }
    byte[] digitos = new byte[(int) Math.log10(numero) + 1];
    for (int i = digitos.length - 1; i >= 0; i--) {
        digitos[i] = (byte) (numero % 10);
        numero /= 10;
    }
    return digitos;
}

Exemplo de uso:

int numeroDigitado = Integer.parseInt(meuObjetoTextField.getText());
byte[] digitos = extrairDigitos(numeroDigitado);
int digito1 = digitos[0];
int digito2 = digitos[1];
int digito3 = digitos[2];
1 curtida

obrigado pela ajuda staroski, mas nao compreendi o método usado, sou iniciante em java poderia explicar melhor ou tem algum outro método.

O que você não compreendeu?

Posta o código de sua tela que fica fácil te mostrar como incluir o código acima.

Fiz dessa forma, acredito que consegui armazenar os números em variaveis diferentes, se voce puder me confirmar se está certo.

outro porém agora é que a ação de armazenar ocorre no JButton “OK”, e agora preciso que no JButton “Exibir” a ação dele insira visualmente os valores das variaveis nos outros JTextField.

package com.ap;

import java.awt.Color;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MediaNum extends JFrame {

private JTextField numeros;
private JTextField txtMaior;
private JTextField txtMenor;
private JTextField txtMedia;

int valor;
int unidade;
int dezena;
int centena;


	
public MediaNum() {
	
	
	
	setTitle("MediaNum");
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	setSize(600,400);
	setResizable(false);
	
	
	JPanel p = new JPanel();
	p.setBackground(Color.white);
	p.setLayout(null);
	
	
	JLabel digit = new JLabel("Digite o numero: ");
	digit.setBounds(20, 20, 120, 20);
	
	numeros = new JTextField();
	numeros.setBounds(20, 40, 200, 30);
	
	
	
	
	JButton OK = new JButton("OK");
	OK.setBounds(225, 40, 140, 30);
	
	
	JButton Exibir = new JButton("Exibir");
	Exibir.setBounds(405, 180, 140, 30);
	
	JLabel Maior = new JLabel("Maior >>> ");
	Maior.setBounds(60,100, 80, 80);
	txtMaior = new JTextField();
	txtMaior.setBounds(200, 125, 200, 30);
	
	JLabel Menor = new JLabel("Menor >>> ");
	Menor.setBounds(60,140, 100, 100);
	txtMenor = new JTextField();
	txtMenor.setBounds(200, 180, 200, 30);
	
	
	JLabel Media = new JLabel("Media >>> ");
	Media.setBounds(60,200, 100, 100);
	txtMedia = new JTextField();
	txtMedia.setBounds(200, 230, 200, 30);

	 
	
	
	
	OK.addActionListener(
			
			new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					
				
					int valor = Integer.parseInt(numeros.getText());
				
					int unidade = (valor/1) % 10;
					int dezena = (valor/10) % 10;
					int centena = (valor/100) % 10;
				
					
				}
				
			}
				
				
				
				
			
			
			);
	

	Exibir.addActionListener(
			
			new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					
					txtMaior = new JTextField(unidade);
					
				}
				
				
			}
			
			);
	
	
	
	p.add(digit);
	p.add(numeros);
	p.add(OK);
	p.add(Exibir);
	
	p.add(Maior);
	p.add(txtMaior);
	
	p.add(Menor);
	p.add(txtMenor);
	
	p.add(Media);
	p.add(txtMedia);
	add(p);
	
	
	
}




}

sua variavél “unidade” está é criando a quantidade de colunas que vai ter o JTextField, pois você está usando no construtor. Outra coisa é que para passar um int para String só é possivel por funções que fazem essa conversão. Ficaria no seu caso +ou- assim

txtMaior = new JTextField();
txtMaior.setText(String.valueOf(unidade));
import java.awt.Color;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MediaNum extends JFrame {

    private JTextField txtNumeros;
    private JTextField txtMaior;
    private JTextField txtMenor;
    private JTextField txtMedia;

    private int unidade;
    private int dezena;
    private int centena;

    public MediaNum() {

        setTitle("MediaNum");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(600, 400);
        setResizable(false);

        JPanel p = new JPanel();
        p.setBackground(Color.white);
        p.setLayout(null);

        JLabel digit = new JLabel("Digite o numero: ");
        digit.setBounds(20, 20, 120, 20);

        txtNumeros = new JTextField();
        txtNumeros.setBounds(20, 40, 200, 30);

        JButton OK = new JButton("OK");
        OK.setBounds(225, 40, 140, 30);

        JButton Exibir = new JButton("Exibir");
        Exibir.setBounds(405, 180, 140, 30);

        JLabel Maior = new JLabel("Maior >>> ");
        Maior.setBounds(60, 100, 80, 80);
        txtMaior = new JTextField();
        txtMaior.setBounds(200, 125, 200, 30);

        JLabel Menor = new JLabel("Menor >>> ");
        Menor.setBounds(60, 140, 100, 100);
        txtMenor = new JTextField();
        txtMenor.setBounds(200, 180, 200, 30);

        JLabel Media = new JLabel("Media >>> ");
        Media.setBounds(60, 200, 100, 100);
        txtMedia = new JTextField();
        txtMedia.setBounds(200, 230, 200, 30);

        OK.addActionListener(event -> pressionouOK());

        Exibir.addActionListener(event -> pressionouExibir());

        p.add(digit);
        p.add(txtNumeros);
        p.add(OK);
        p.add(Exibir);

        p.add(Maior);
        p.add(txtMaior);

        p.add(Menor);
        p.add(txtMenor);

        p.add(Media);
        p.add(txtMedia);
        add(p);

    }

    private void pressionouExibir() {
        int maior = maior(unidade, maior(dezena, centena));
        txtMaior.setText(String.valueOf(maior));

        int menor = menor(unidade, menor(dezena, centena));
        txtMenor.setText(String.valueOf(menor));

        int media = (menor + maior) / 2;
        txtMedia.setText(String.valueOf(media));
    }

    private void pressionouOK() {
        int valor = Integer.parseInt(txtNumeros.getText());
        unidade = (valor / 1) % 10;
        dezena = (valor / 10) % 10;
        centena = (valor / 100) % 10;
    }

    private int maior(int a, int b) {
        return a > b ? a : b;
    }

    private int menor(int a, int b) {
        return a < b ? a : b;
    }
}
1 curtida

Mais uma vez, obrigado pela ajuda!