[Bugs no meu código] [Resolvido]

galera ve se vcs conseguem me ajudar nesse probleminha …

o código abaixo ele roda mas tem alguns problemas que nao estou conseguindo resolver :

a variavel prob: ela nao esta atribuindo “1/en” para a variavel

e nao estou conseguindo fazer aparecer a JOptionPane.ShowMessageDialog aparecer

eu dei uma debugada no código e vi a questao da variavel prob e e que nessa variavel aux nao esta sendo atribuida tb

se vcs puderem me ajudar ficaria muito grato

tenho que entregar o programa amanha

valeu …

segue o código :

package javaapplication1;


import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JLabel;




public class Main extends JFrame{
   
   
     JButton botao;
     JLabel label,label2,label3;
     JTextField texto1,texto2;
     int alt,en;
     
     
     
   
   //constroi a primeira tela
    public Main(){
        texto1=new JTextField(3);
        texto2=new JTextField(3);
        botao=new JButton("continua");
        label=new JLabel("               Digite o numero de Alternativas ");
        label2=new JLabel("Digite o numero de Estados da Natureza");
        Container container =getContentPane();
        setTitle("Trabalho PO");
        container.add(label);
        container.add(texto1);
        container.add(label2);
        container.add(texto2);
        container.add(botao);
        container.setLayout(new FlowLayout(FlowLayout.CENTER));
        setSize(300,200);
        setVisible(true);
          
        botaoContinua continua =new botaoContinua();
        botao.addActionListener(continua);
        }
  
    
    
    

private class botaoContinua implements ActionListener{
    
    public void actionPerformed(ActionEvent evento){ 
         //guarda as variaveis de alternativa e estados da natureza
        try{
        alt=Integer.parseInt(texto1.getText());
        en=Integer.parseInt(texto2.getText());
        
        }catch(NumberFormatException e){ //pode gerar exceção de formato de
        JOptionPane.showMessageDialog(null,"voce digitou uma letra ou deixou de digitar algum campo");
        System.exit(alt);//quando gerada a exceção sai do programa
        }
        SegundaJanela segundaJanela =new SegundaJanela();
        segundaJanela.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        
       
    
}
    
       
}





 public class SegundaJanela extends JFrame{
     public SegundaJanela(){
        int arrayalt[]=new int[alt];
         int arrayen[]=new int[en];
         int arrayquant[][]=new int[alt][en];
         int arrayresultado[][]=new int[alt][en];
         int arraysoma[]=new int[alt];
         int aux=0,opcao;
         float prob=(1/en);
         
    
    try{
   for(int i=0;i<alt;i++){
       arrayalt[i]=Integer.parseInt(JOptionPane.showInputDialog("digite o custo da "+(i+1)+" alternativa"));
   }
        }catch(ArrayIndexOutOfBoundsException e){
            e.printStackTrace();
        }
    
    try{
        
        for (int j=0;j<en;j++){
            arrayen[j]=Integer.parseInt(JOptionPane.showInputDialog("digite o preço de venda do "+(j+1)+" estado da natureza"));
        } 
        }catch(ArrayIndexOutOfBoundsException e){
            e.printStackTrace();
        }
        try{
            for(int i=0;i<=alt;i++){
                for(int j=0;j<en;j++){
                    arrayquant[i][j]=Integer.parseInt(JOptionPane.showInputDialog("digite o numero da "+(i+1)+" qauntidade e do "+(j+1)+" estado da natureza"));
                }
            }
        }catch(ArrayIndexOutOfBoundsException e){
         e.printStackTrace();   
        }
        
    opcao= JOptionPane.showConfirmDialog(null,"deseja ver qual a melhor alternativa a tomar? ","opçao",JOptionPane.YES_NO_OPTION);
   
     if(opcao==JOptionPane.YES_OPTION){
         
       
          for(int i=0;i<alt;i++){
            for(int j=0;j<en;j++)
               arrayresultado[i][j]=(((arrayen[j]-arrayalt[i])*arrayquant[i][j])*(int)prob);
               
            
         }
         
         for(int i=0;i<alt;i++)
             for(int j=0;j<en;j++)
                 
                 arraysoma[i]=arraysoma[i]+arrayresultado[i][j];
             
         for(int i=0;i<=alt;i++)
             if(aux<arraysoma[i]){
                 aux=arraysoma[i];
         
         JOptionPane.showMessageDialog(null," a melhor alternativa é "+aux);
             }
     
     else
         System.exit(0);
    
     
     }
 
     }
 }
 
public static void main(String args []){
    Main janela=new Main();
    janela.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    }
       
       

    }


Utilize o metodo janela.setVisible(true)

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Component.html#setEnabled(boolean)

Você não falou o que o programa deveria fazer. Nem o que ele atualmente faz. E nem em que trecho desse código todo está o problema. E nem que passos temos que seguir para simular os problemas que você descreveu. Assim fica realmente difícil te ajudar!

É VINI, ta meio dificil de ajudar mesmo!!
Vi um problema no seu codigo. Nao é aconselhavel colocar JOptionPanes dentro de um for…
Quando seu programa rodar poderá acusar a existencia de mtos Joptionpanes e dar erro!

Lembre-se: tudo q está dentro de um for será executado e só terminará quando o laço chegar ao fim!!

vlewww :!: :!:

#          float prob=(1/en);  

O valor disso é sempre zero (exceto no caso em que en == 1). Troque isso por:

double prob = 1.0 / en;

Repisando, procure nunca usar “float” para fazer contas.

Use sempre “double”* e não se esqueça que uma divisão, para dar um resultado de ponto flutuante, requer que pelo menos um dos argumentos seja de ponto flutuante.

  • Conselho dado há mais de 20 anos pelos srs. Kernighan e Ritchie, que inventaram a linguagem C, que é “avó” do Java. O Java é de certa forma uma “neta” do C porque ela é mais ou menos uma “filha” do C++.

Olá

Acho que todos os tópicos criados com títulos que não descrevam o assunto da pergunta ou com palavras do tipo ajuda urgente no título, deveriam receber resposta automatica dada pelo JForum. Minha sugestão de resposta para quando contém a palavra urgente:

  • Já tentou 193?

[]s
Luca

obrigado a todos galera a dica do double prob = 1.0 / en funcionou

e os outros problemas consegui resolver

quando eu for postar vou tentar colocar no titulo do que se trata beleza

flw p vcs

até mais