Vai al contenuto
Il server del mese è
Visita la nostra nuova lista server!

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

  • 0
2000andrea

Piccolo Problema In Java

Domanda

Scusate ragazzi, ma ho un piccolo problema con il mio ancora piccolo programma in java. Adesso vi elenco il codice, poi ve lo spiego(metto sotto spoiler sennò la pagina diventerebbe grandissima):

[spoiler]

        JFrame jf= new JFrame("Dati Gioco");
        Container c=jf.getContentPane();
        c.setLayout(null);
        final JButton bfante= new JButton("Imposta dati sul fante");
        bfante.setBounds(50,25,210,40);
        final JButton barciere= new JButton("Imposta dati sull'arciere");
        barciere.setBounds(50,125,210,40);
        final JButton bspad= new JButton("Imposta dati sullo spadaccino");
        bspad.setBounds(50,225,210,40);
        final JButton bgiav= new JButton("Imposta dati sul giavellottiere");
        bgiav.setBounds(50,325,210,40);
        final JTextField tfante= new JTextField();
        tfante.setBounds(300,25,100,40);
        final JTextField tfante2= new JTextField();
        tfante2.setBounds(300,75,100,40);
        final JTextField tarciere= new JTextField();
        tarciere.setBounds(300,125,100,40);
        final JTextField tarciere2= new JTextField();
        tarciere2.setBounds(300,175,100,40);
        final JTextField tspad= new JTextField();
        tspad.setBounds(300,225,100,40);
        final JTextField tspad2= new JTextField();
        tspad2.setBounds(300,275,100,40);
        final JTextField tgiav= new JTextField();
        tgiav.setBounds(300,325,100,40);
        final JTextField tgiav2= new JTextField();
        tgiav2.setBounds(300,375,100,40);
        JLabel lfante= new JLabel("Atk Fante");
        lfante.setForeground(Color.RED);
        lfante.setBounds(400,25,100,40);
        JLabel lfante2= new JLabel("Def Fante");
        lfante2.setForeground(Color.BLUE);
        lfante2.setBounds(400,75,100,40);
        JLabel larciere= new JLabel("Atk Arciere");
        larciere.setForeground(Color.RED);
        larciere.setBounds(400,125,100,40);
        JLabel larciere2= new JLabel("Def Arciere");
        larciere2.setForeground(Color.BLUE);
        larciere2.setBounds(400,175,100,40);
        JLabel lspad= new JLabel ("Atk Spadaccino");
        lspad.setForeground(Color.RED);
        lspad.setBounds(400,225,100,40);
        JLabel lspad2= new JLabel ("Def Spadaccino");
        lspad2.setForeground(Color.BLUE);
        lspad2.setBounds(400,275,100,40);
        JLabel lgiav= new JLabel("Atk Giavellottiere");
        lgiav.setForeground(Color.RED);
        lgiav.setBounds(400,325,100,40);
        JLabel lgiav2= new JLabel("Def Giavellottiere"); 
        lgiav2.setForeground(Color.BLUE);
        lgiav2.setBounds(400,375,100,40);
        c.add(lgiav);
        c.add(lgiav2);
        c.add(lspad);
        c.add(lspad2);
        c.add(larciere);
        c.add(larciere2);
        c.add(lfante);
        c.add(lfante2);
        c.add(tgiav);
        c.add(tgiav2);
        c.add(tspad);
        c.add(tspad2);
        c.add(tarciere);
        c.add(tarciere2);
        c.add(tfante);
        c.add(tfante2);
        c.add(bgiav);
        c.add(bspad);
        c.add(barciere);
        c.add(bfante);
        jf.setBounds(100,100,700,500);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        
        
        
        
        ActionListener al2= new ActionListener(){
            
            
            public String fante_atk;
            public String fante_def;
            public String arciere_atk;
            public String arciere_def;
            public String spadaccino_atk;
            public String spadaccino_def;
            public String giavellottiere_atk;
            public String giavellottiere_def;
            
            public void actionPerformed(ActionEvent ae){
                Object o=ae.getSource();
                boolean f=false,a=false,s=false,g=false; 

                
                if (o==bfante){
                    fante_atk = tfante.getText();
                    fante_def = tfante2.getText();
                    tfante.setText("");
                    tfante2.setText("");
                    f=true;
                }
                
                if (o==barciere){
                    arciere_atk= tarciere.getText();
                    arciere_def= tarciere2.getText();
                    tarciere.setText("");
                    tarciere2.setText("");    
                    a=true;
                }
                
                if (o==bspad){
                    spadaccino_atk= tspad.getText();
                    spadaccino_def= tspad2.getText();
                    tspad.setText("");
                    tspad2.setText("");
                    s=true;
                }
                
                if (o==bgiav){
                    giavellottiere_atk= tgiav.getText();
                    giavellottiere_def= tgiav2.getText();
                    tgiav.setText("");
                    tgiav2.setText("");
                    g=true;
                }
                

            
                if (f==true && a==true && s==true && g==true){
                    
                    try{
        String newline=System.getProperty("line.separator");
        FileOutputStream dati_unità= new FileOutputStream("unità.txt");
//        Scanner scanner= new Scanner(System.in); 
//        System.out.println("Inserisci attacco e difesa del fante:");
//        int fante_atk=scanner.nextInt();
//        int fante_def=scanner.nextInt();
//        System.out.println("Inserisci attacco e difesa dell'arciere:");
//        int arciere_atk=scanner.nextInt();
//        int arciere_def=scanner.nextInt();
//        System.out.println("Inserisci attacco e difesa dello spadaccino:");
//        int spadaccino_atk=scanner.nextInt();
//        int spadaccino_def=scanner.nextInt();
//        System.out.println("Inserisci attacco e difesa giavellottiere:");
//        int giavellottiere_atk=scanner.nextInt();
//        int giavellottiere_def=scanner.nextInt();          
        
        PrintStream dati= new PrintStream(dati_unità);
        String dati_u="Fante: "+newline+"Atk: "+fante_atk+""+newline+"Def: "+fante_def+""+newline+"Arciere:"+newline+"Atk: "+arciere_atk+""+newline+"Def: "+arciere_def+""+newline;
        String dati_u2="Spadaccino:"+newline+"Atk: "+spadaccino_atk+""+newline+"Def: "+spadaccino_def+""+newline+"Giavellottiere:"+newline+"Atk: "+giavellottiere_atk+""+newline+"Def: "+giavellottiere_def+""+newline;
        String dati_c=dati_u.concat(dati_u2);
        dati.println(dati_c);
        dati_unità.close();
        
        String dati_p=dati_c.replaceAll(""+newline,"");
        String dati_s=dati_p.replaceAll("  ","");
        char [] lettere={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
        
        String dati_t=dati_s.replaceAll("Arciere:","");
        String dati_q=dati_t.replaceAll("Fante:","");
        String dati_qu=dati_q.replaceAll("Spadaccino:","");
        String dati_se=dati_qu.replaceAll("Giavellottiere:","");
        String dati_set=dati_se.replaceAll("Atk: ","");
        String dati_o=dati_set.replaceAll("Def: ","");
        String dati_n=dati_o.trim();
//      String dati_se=dati_qu.replaceAll(""+lettere,"");
        
        Scanner scanner1= new Scanner(new File("unità.txt"));
        while (scanner1.hasNext()){
            String de = scanner1.nextLine();
        }
        scanner1.close();
        
        System.out.println(dati_n);
        
        } catch (IOException ioex){
            ioex.printStackTrace();
            System.out.println("Si è verificato un errore con la gestione dei file");
        } catch (IllegalStateException isex){
            isex.printStackTrace();
            System.out.println("Si è verificato un errore nella lettura del file");
        }
        finally
        {
            System.out.println("Hello world!");
            
            
            
        }
                    
                    

                    
                }
                
                
            }
        };
        
        
        
        bfante.addActionListener(al2);
        barciere.addActionListener(al2);
        bspad.addActionListener(al2);
        bgiav.addActionListener(al2);
        
        
        

[/spoiler]

 

Praticamente sarebbe un una finestra che gestisce e aggiorna i dati appunto dell'attacco e difesa di alcune unità. Il problema si concentra tutto dentro l'actionPerformed. Praticamente quando clicco il pulsante faccio un getText() per prelevare i dati dell'omonima unità, ma alla fine, quando cerco di scrivere su un file .txt i risultati mi appare tutto bianco. So che è un problema dell'interfaccia nuova perchè prima attribuivo i valori tramite console con lo scanner e i vari nextInt(),e mi funzionava correttamente. Per favore aiutatemi, so già che sicuramente la soluzione sarà una cavolata di cui non ci avevo pensato oppure di una lacuna nel mio sapere sul java. Scusate ancora se ve lo chiedo su questo forum, ma cercando su internet e facendo qualche googlata non ho trovato niente.

Grazie in anticipo,

2000andrea

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

0 risposte a questa domanda

Recommended Posts

Non ci sono ancora state risposte a questa domanda


×
×
  • Crea Nuovo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.