Ajuda: Problemas numa string

3 respostas
thiagossantos
String mType = "JOptionPane.PLAIN_MESSAGE";
  
   JOptionPane.showMessageDialog(null, "Seu saldo anterior era " + ant
         + "\nSua receita foi  " + recei
         + "\nSuas despesas foram " + despe
         + "\nA variação do caixa deste período foi " + var
         + "\nO novo saldo é " + saldo,
         "Contabilidade", mType);

Comecei a 1 semana no livro do Deitel, e achei um exercício tão interessante que decidi estendê-lo e fazer um programa para folhas de pagamentos, só que dedu problema aí.

O problema tá no mType, o que eu quero é poder definir o tipo da mensagem fora do método, pra poder alterá-lo usando ifs, dependendo dos valores dos inteiros... só que ele reclama e não to achando o porquê.

o código completo até agora é:

import javax.swing.JOptionPane;

public class Payroll {

   public static void main(String args[]) {

   //gerando as variaveis inteiras
   int recei; 
   int despe;
   int ant;

   //Fazendo o INPUT
   String sant = JOptionPane.showInputDialog("Digite o saldo anterior");
   String srecei = JOptionPane.showInputDialog("Digite o valor da receita");
   String sdespe = JOptionPane.showInputDialog("DIgite o valor das despesas (em módulo)");

   //transformando as Strings em ints
   ant = Integer.parseInt(sant);
   despe = Integer.parseInt(sdespe);
   recei = Integer.parseInt(srecei);

   //Matematicando...
   int var = recei - despe;
   int saldo = ant + var;

   //Extras com ifs (ainda vou concluir)
   String mType = "JOptionPane.PLAIN_MESSAGE";
  

   JOptionPane.showMessageDialog(null, "Seu saldo anterior era " + ant
         + "\nSua receita foi  " + recei
         + "\nSuas despesas foram " + despe
         + "\nA variação do caixa deste período foi " + var
         + "\nO novo saldo é " + saldo,
         "Contabilidade", mType);

   System.out.println("Programa concluído com sucesso!\nFechando...");
   System.exit(0);

   }

}

3 Respostas

saulohenry

O problema é que JOptionPane.PLAIN_MESSAGE é uma constante inteira e não um string vc tem que usa-la como está no livro do deitel por que , ocmo é uma constante ela vai substituir o valor dela pelo inteiro que representa este tipo de janela de opção entao não pode armazenar como uma string e coloca-la no lugar do argumento dele.

Rafael_Nunes

O método showMessageDialog requer um int como messageType e você tá passando como String.
Você não vai conseguir definir do jeito que você está querendo.

Duas opções, ou você faz um switch pra definir a mType, tipo:

switch (teste){ case 1: mType = 1; break; case 2: mType = 2; break; case 3: mType = 3 ...

Ou definir constantes pra isso:

public static final int MTYPEONE = 1; public static final int MTYPETWO = 2;

Maaaaas, foi para isso que eles já fizeram este trabalho para você com o JOptionPane.PLAIN_MESSAGE, que nada mais é que uma constante int que você precisa.

thiagossantos

Ah!
entendi, vou organizar aqui de outra forma pra dar certo
brigadão vcs!

[]'s

Criado 19 de abril de 2005
Ultima resposta 19 de abr. de 2005
Respostas 3
Participantes 3