O seguinte programa é de conversão de número decimal para binário e de binário para decimal. Na parte de conversão de decimal para binário foi utilizado um método recursivo, porém ele aparece o resultado no CMD do Windows. Gostaria de saber se tem como eu colocar o resultado em forma de janela, assim como foi feito na conversão de binário para decimal.
Primeiro parte do programa:
// Programa de conversão de números de acordo com a base desejada
// Para alterar a fonte do texto
import java.awt.Font;
import javax.swing.*;
import javax.swing.plaf.FontUIResource;
// Exibe janelas
import javax.swing.JOptionPane;
public class Conversao
{
public static void main(String[] args)
{
// Variáveis
int resposta = 0;
// Aumentar o tamanho e o tipo de fonte dos textos
UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("Arial", Font.BOLD, 24)));
// Opções de conversão
Object[] opcao = {"Decimal para binário", "Binário para decimal"};
// Altera os botões das janelas
Object[] botao = {"NOVA CONVERSÃO", "SAIR"};
// Título das janelas
String titulo = String.format("Calculadora de conversão de número");
while (resposta == 0)
{
// Usuário escolhe um tipo de conversão
String tipo = (String)JOptionPane.showInputDialog(null, "Escolha um tipo de conversão", titulo, 3, null, opcao, opcao);
if (tipo == null)
System.exit(0);
// Usuário digita um número de acordo com a conversão
String numero1 = JOptionPane.showInputDialog(null, "Digite um número", titulo, 3);
if (numero1 == null)
System.exit(0);
int numero = Integer.parseInt(numero1);
if (tipo.equals("Decimal para binário"))
{
ConversaoDB converter = new ConversaoDB();
converter.setConversao(numero);
String mensagem1 = String.format("Número em decimal: %d%nNúmero em binário: OLHAR NO CMD", numero);
resposta = JOptionPane.showOptionDialog(null, mensagem1, titulo, -1, -1, null, botao, botao);
}
if (tipo.equals("Binário para decimal"))
{
ConversaoBD converter = new ConversaoBD();
converter.setConversao(numero);
String mensagem10 = String.format("Número em binário: %d%nNúmero em decimal: %.0f", numero, converter.getConversao());
resposta = JOptionPane.showOptionDialog(null, mensagem10, titulo, -1, -1, null, botao, botao);
}
}
System.exit(0);
}
}
Segunda parte do programa:
public class ConversaoDB
{
public static void setConversao(int numeroVL)
{
if (numeroVL > 0)
{
setConversao(numeroVL / 2);
System.out.print(numeroVL % 2);
}
}
}
Terceira parte do programa:
public class ConversaoBD
{
private double numeroVI;
public void setConversao(int numeroVL)
{
// Variaveis do metodo setConversao
int potencia = 0;
double total = 0;
while (numeroVL > 0)
{
int resto = numeroVL % 10;
numeroVL = numeroVL / 10;
total = total + (resto * Math.pow(2, potencia));
potencia = potencia + 1;
}
numeroVI = total;
}
public double getConversao()
{
return numeroVI;
}
}
A seguinte imagem mostra que o resultado é exibido no CMD. Porém eu gostaria que fosse em forma de janela.
A seguinte imagem o resultado é em forma de janela.