Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    problema i risultati sono inaspetati, bug nella visualazzione risultati nella wiew

    ciao a tutti!
    ho un problema in un programmino in Java usando Net Beans 6.9.1, sto creando un algoritmo sul riparto dell'utile di un s.p.a.
    ho vari bug da risolvere, come risolvo?come mai?
    il primo bug è che mi si visualizza 0.0 € nei risultati (utile da distribuire,riserva legale e riserva straodinaria).
    il secondo bug che non funziona il bottone per i dividendi non fa visualizzare il risultato e di conseguenza il bottone per il rimante non esegue la sua funzione perchè i dividendi non funzionano.
    poi c'è qualcosa che non forse ha un if nel bottone saldo vecchio perchè non esegue lo sfondo rosso per i valori minori di 0 anzi non cambia manco la stringa nella jlabel che ettichetta il saldo vecchio.
    infine ho 1 domanda per l'inserimento degli input.
    essendo che noterete che inserisco molte volte in diversi bottoni quasi gli stessi input; come faccio una volta sola le istruzioni che riguardano gli input e poi usarle più volte a seconda dei bottoni. avrei pensato di metterle nelle proprietà della wiew ma mi sembra sbagliato per definizione.
    oppure creare una classe apposta per le operazioni di input e basta da instanziare comunque nelle proprietà della wiew e poi richiamare il metodo generale per gli input in bottone inserisci.
    pero non so se queste due soluzioni sono giuste e possono essere fattibili soprattutto e il modo giusto di fare. non credo tanto o forse si può fare ma non lo so. anche il linguaggio lo prevede ma non voglio confondere chi fa cosa?
    la risoluzione dei problema è urgente che devo preparare una verifica per martedì se mi date una mano, non proprio i codici ma delle spiegazioni che reindirizzano nella retta via.

  2. #2

    ecco i codici che fatto fin ora:

    classe riparto:
    codice:
    package ripartoutilespa;
    
    public class riparto  {
    
        long capsoc;
        int uril, vn;
        double risst, coamm, ammo, saldo, arrotodamento;
    
        public riparto(long capsoc, int uril, int vn, double risst, double coamm, double ammo, double saldo, double arrotodamento) {
            this.capsoc = capsoc;
            this.uril = uril;
            this.vn = vn;
            this.coamm = coamm;
            this.ammo = ammo;
            this.saldo = saldo;
            this.arrotodamento = arrotodamento;
        }
    
        public double getAmmo() {
            return ammo;
        }
    
        public long getCapsoc() {
            return capsoc;
        }
    
        public double getCoamm() {
            return coamm;
        }
    
        public double getRisst() {
            return risst;
        }
    
        public double getSaldo() {
            return saldo;
        }
    
        public int getUril() {
            return uril;
        }
    
        public int getVn() {
            return vn;
        }
    
        public double getriservaLegale() {
            double x=0, y=0, z=0,v=0;
            x= getCapsoc() / 5;
            y= getUril()-getSaldo();
            z= (5*y)/100;
            if (z <= x) {
            v= z;
            }else{
            v=0;
            }
           return v;
        }
    
        public double getriservaStraodinaria() {
            double x, y;
            x = (getCoamm() * getAmmo()) / 100;
            y = getCoamm() - (x * 2);
            return y;
        }
    
        public double getutiledaDistribuire() {
            double x = 0;
            if (getSaldo() < 0) {
                x = (getUril() - getSaldo()) - getriservaStraodinaria() - getriservaLegale() - getRisst();
            } else {
                x = (getUril() + getSaldo()) - getriservaStraodinaria() - getriservaLegale() - getRisst();
            }
            return x;
        }
    
        private double getArrotodamento(double x, double arrotodamento) {
            double y = x * arrotodamento;
            int z = (int) (y);
            double a = z / arrotodamento;
            return a;
        }
    
        public double getDividendi() {
            double x = 0, y = 0, dividendo = 0;
            int nazioni = 0;
            nazioni = (int)(getCapsoc() / getVn());
            if (getutiledaDistribuire() > 0) {
                dividendo = getutiledaDistribuire() / nazioni;
               x = getArrotodamento(dividendo, arrotodamento);
               y= x*nazioni;
            } else if (getutiledaDistribuire() == 0) {
                System.err.println("non c'è utile da distribuire per gli azionisti");
                y = 0;
            } else {
                System.err.println("è rilevata una perdita ");
            }
    
            return y;
        }
    
        public double getRimanente() {
            return getutiledaDistribuire() - getDividendi();
        }
    }
    ho anche un dubbio di semantica e sintassi che sia giusto per lo meno se esegue veramente cosa voglio io.
    più che altro la variabile v che puo essere inutile solo che volevo scrivere un codice che può eseguire il 5% di y solo se il 5% di y è minore di 1/5 del capitale sociale altrimenti restiuire 0. vedi codice sopra.
    codice:
      
    z= (5*y)/100;        
    if (z <= x) {         
    v= z;  
     } else{   
     v=0;       
    }

  3. #3
    proprieta della wiew:

    codice:
     
    public class RipartoutileSPAView extends FrameView {
    
    DecimalFormat df = new DecimalFormat("#,##0.00");
        long capsoc;
        int uril, vn;
        double risst, coamm, ammo, saldo, arrotodamento;
        riparto r = new riparto(capsoc, uril, vn, risst, coamm, ammo, saldo, arrotodamento);
    nelle proprieta wiew sebra che manchi la graffa finale per la classe non lo postata perchè mi sembra inutile inquanto si trova proprio alla fine classe creata predefinitavemente insieme ad altri codici tra cui l'inizializzazione dei componenti. per ho postato l'inizio della classe dove c'è il nome classe per far capire la mia idea di wiew.
    bottone saldo vecchio:
    codice:
       try {
                saldo = new Double(txtsaldo.getText());
            } catch (NumberFormatException e) {
                System.err.println("inserisci solo numeri");
                txtsaldo.setText("");
                txtsaldo.grabFocus();
                return;
            }
            if (txtsaldo.getText().isEmpty()) {
                System.err.println("inserisci il saldo vecchio");
                txtsaldo.grabFocus();
                return;
            } else {
                if (r.getSaldo() < 0) {
                    txtsaldo.setBackground(Color.red);
                    lblsaldo.setBackground(Color.red);
                    lblsaldo.setText("perdita a nuovo:");
                } else {
                    txtsaldo.setBackground(Color.GREEN);
                    lblsaldo.setBackground(Color.GREEN);
                    lblsaldo.setText("utile  a nuovo:");
                }
            }
    bottone riserva legale:

    codice:
        try {
                uril = new Integer(txturil.getText());
                capsoc = new Long(txtcapsoc.getText());
                saldo = new Double(txtsaldo.getText());
            } catch (NumberFormatException e) {
                System.err.println("inserisci solo numeri");
                txturil.setText("");
                txtcapsoc.setText("");
                txturil.grabFocus();
                txtcapsoc.grabFocus();
                txtsaldo.grabFocus();
                return;
            }
            if (txturil.getText().isEmpty() && txtcapsoc.getText().isEmpty() && txtsaldo.getText().isEmpty()) {
                System.err.println("inserisci il utile rilevato e il capitale sociale e il saldo vecchio ");
                txturil.grabFocus();
                txtcapsoc.grabFocus();
                return;
            } else if (txturil.getText().isEmpty() || txtcapsoc.getText().isEmpty() || txtsaldo.getText().isEmpty()) {
                System.err.println("inserisci i valori mancanti");
                txturil.grabFocus();
                txtcapsoc.grabFocus();
                txtsaldo.grabFocus();
                return;
            } else {
                double x = r.getriservaLegale();
                txtrisle.setText(df.format(x) + "\t" + "€");
    
            }

  4. #4
    bottone riserva straodinaria:
    codice:
    try {
                coamm = new Double(txtcoamm.getText());
                ammo = new Double(txtammo.getText());
            } catch (NumberFormatException e) {
                System.err.println("inserisci solo numeri");
                txtcoamm.setText("");
                txtammo.setText("");
                txtcoamm.grabFocus();
                txtammo.grabFocus();
                return;
            }
            if (txtcoamm.getText().isEmpty() && txtammo.getText().isEmpty()) {
                System.err.println("inserisci i costi da ammortizare e l'ammortamento");
                txtcoamm.grabFocus();
                txtammo.grabFocus();
                return;
            } else if (txtcoamm.getText().isEmpty() || txtammo.getText().isEmpty()) {
                System.err.println("inserisci i valori mancanti");
                txtcoamm.grabFocus();
                txtammo.grabFocus();
                return;
            } else {
                double x = r.getriservaStraodinaria();
                txtrisstrao.setText(df.format(x) + "\t" + "€");
            }
    bottone utile da distribuire:
    codice:
        try {
                uril = new Integer(txturil.getText());
                risst = new Double(txtrissta.getText());
                saldo = new Double(txtsaldo.getText());
            } catch (NumberFormatException e) {
                System.err.println("inserisci solo numeri");
                txturil.setText("");
                txtrissta.setText("");
                txturil.grabFocus();
                txtrissta.grabFocus();
                txtsaldo.setText("");
                txtsaldo.grabFocus();
                return;
            }
            if (txturil.getText().isEmpty() && txtrissta.getText().isEmpty() && txtsaldo.getText().isEmpty()) {
                System.err.println("inserisci il utile rilevato, la riserva statutaria e il saldo vecchio");
                txturil.grabFocus();
                txtrissta.grabFocus();
                txtsaldo.grabFocus();
                return;
            } else if (txturil.getText().isEmpty() || txtrissta.getText().isEmpty() || txtsaldo.getText().isEmpty()) {
                System.err.println("inserisci i valori mancanti");
                txturil.grabFocus();
                txtrissta.grabFocus();
                txtsaldo.grabFocus();
                return;
            } else {
                double x = r.getutiledaDistribuire();
                txtudistribuire.setText(df.format(x) + "\t" + "€");
            }

  5. #5
    bottone dividendi:

    codice:
        try {
                arrotodamento = new Double(txtarro.getText());
                capsoc = new Long(txtcapsoc.getText());
                vn = new Integer(txtvn.getText());
            } catch (NumberFormatException e) {
                System.err.println("inserisci solo numeri");
                txtvn.setText("");
                txtcapsoc.setText("");
                txtcapsoc.grabFocus();
                txtvn.grabFocus();
                txtarro.setText("");
                txtarro.grabFocus();
                return;
            }
            if (txtarro.getText().isEmpty() && txtcapsoc.getText().isEmpty() && txtvn.getText().isEmpty()) {
                System.err.println("inserisci il utile rilevato, la riserva statutaria e il saldo vecchio");
                txtcapsoc.grabFocus();
                txtvn.grabFocus();
                txtarro.grabFocus();
                return;
            } else if (txtarro.getText().isEmpty() || txtcapsoc.getText().isEmpty() || txtvn.getText().isEmpty()) {
                System.err.println("inserisci i valori mancanti");
                txtcapsoc.grabFocus();
                txtvn.grabFocus();
                txtarro.grabFocus();
                return;
            } else {
                double x = r.getDividendi();
                txtdivi.setText(df.format(x) + "\t" + "€");
            }
    infine bottone rimanente:
    codice:
        double x = r.getRimanente();
            txtrimanente.setText(df.format(x) + "\t" + "€");
            if (r.getRimanente() < 0) {
                txtrimanente.setBackground(Color.red);
                lblrimanente.setBackground(Color.red);
                lblrimanente.setText("perdita a nuovo:");
            } else if (r.getRimanente() == 0) {
                txtrimanente.setBackground(Color.ORANGE);
                lblrimanente.setBackground(Color.ORANGE);
                lblrimanente.setText("utile non distribuibile:");
            } else {
                txtrimanente.setBackground(Color.GREEN);
                lblrimanente.setBackground(Color.GREEN);
                lblrimanente.setText("utile  a nuovo:");
            }

  6. #6
    errori ed eccezioni durante l'eseguzionie del programma:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.ArithmeticException: / by zero
            at ripartoutilespa.riparto.getDividendi(riparto.java:87)
            at ripartoutilespa.RipartoutileSPAView.btndividendiActionPerformed(RipartoutileSPAView.java:706)
            at ripartoutilespa.RipartoutileSPAView.access$1100(RipartoutileSPAView.java:23)
            at ripartoutilespa.RipartoutileSPAView$7.actionPerformed(RipartoutileSPAView.java:242)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
            at java.awt.Component.processMouseEvent(Component.java:6175)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:5940)
            at java.awt.Container.processEvent(Container.java:2105)
            at java.awt.Component.dispatchEventImpl(Component.java:4536)
            at java.awt.Container.dispatchEventImpl(Container.java:2163)
            at java.awt.Component.dispatchEvent(Component.java:4362)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
            at java.awt.Container.dispatchEventImpl(Container.java:2149)
            at java.awt.Window.dispatchEventImpl(Window.java:2478)
            at java.awt.Component.dispatchEvent(Component.java:4362)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
    Exception in thread "AWT-EventQueue-0" java.lang.ArithmeticException: / by zero
            at ripartoutilespa.riparto.getDividendi(riparto.java:87)
            at ripartoutilespa.riparto.getRimanente(riparto.java:103)
            at ripartoutilespa.RipartoutileSPAView.btnrimanenteActionPerformed(RipartoutileSPAView.java:712)
            at ripartoutilespa.RipartoutileSPAView.access$1200(RipartoutileSPAView.java:23)
            at ripartoutilespa.RipartoutileSPAView$8.actionPerformed(RipartoutileSPAView.java:252)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
            at java.awt.Component.processMouseEvent(Component.java:6175)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:5940)
            at java.awt.Container.processEvent(Container.java:2105)
            at java.awt.Component.dispatchEventImpl(Component.java:4536)
            at java.awt.Container.dispatchEventImpl(Container.java:2163)
            at java.awt.Component.dispatchEvent(Component.java:4362)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
            at java.awt.Container.dispatchEventImpl(Container.java:2149)
            at java.awt.Window.dispatchEventImpl(Window.java:2478)
            at java.awt.Component.dispatchEvent(Component.java:4362)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
    nella prima lista di errori dopo l'eccezione sottoscritta ci sono quelli riguardanti alla premitura del bottone dividendi
    nella seconda quelli riguardanti il bottone rimanenti.
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.ArithmeticException: / by zero
    comunque ho solo capito che riguarda a qualche divisione x/0 che risulta da qualche parte che blocca l'esecuzione regolare dei calcoli che il computer fa perchè gli è stato ordinato.
    sopratutto sembra riguardi tale metodo che non capisco dove ho sbagliato.
    codice:
     public double getDividendi() {
            double x = 0, y = 0, dividendo = 0;
            int nazioni = 0;
            nazioni = (int)(getCapsoc() / getVn());
            if (getutiledaDistribuire() > 0) {
                dividendo = getutiledaDistribuire() / nazioni;
               x = getArrotodamento(dividendo, arrotodamento);
               y= x*nazioni;
            } else if (getutiledaDistribuire() == 0) {
                System.err.println("non c'è utile da distribuire per gli azionisti");
                y = 0;
            } else {
                System.err.println("è rilevata una perdita ");
            }
    
            return y;
        }
    con la variabile nazioni indica numero azioni è scritta male e sembra nazioni invece è numero azioni.
    negli errori indica tale calcolo mi sembra.

  7. #7
    e non so il perchè ma ovviamente negli errori indica la riga del richiamo della funzione errata nella wiew.

  8. #8
    Originariamente inviato da Cracker1992
    codice:
     public double getDividendi() {
            double x = 0, y = 0, dividendo = 0;
            int nazioni = 0;
            nazioni = (int)(getCapsoc() / getVn());
            if (getutiledaDistribuire() > 0) {
                dividendo = getutiledaDistribuire() / nazioni;
               x = getArrotodamento(dividendo, arrotodamento);
               y= x*nazioni;
            } else if (getutiledaDistribuire() == 0) {
                System.err.println("non c'è utile da distribuire per gli azionisti");
                y = 0;
            } else {
                System.err.println("è rilevata una perdita ");
            }
    
            return y;
        }
    L'errore è scaturito dalle istruzioni in grassetto.

  9. #9
    ok. grazie

  10. #10
    ora manca il bug che ogni risultato esce 0.0 € sembra quasi che gli input non siano stati inseriti. come risolvo?
    e poi nel saldo vecchio ogni numero che sia positivo che negativo esce solo nella label utile a nuovo: e sfondo verde e sfondo verde nella textfield di inserimento io vorrei che nei negativi esca sfondo rosso sia nella label e nella textfield e che ci sia scritto nella label perdita a nuovo:.
    bottone saldo vecchio:
    codice:
          
    
     try {
                saldo = new Double(txtsaldo.getText());
            } catch (NumberFormatException e) {
                System.err.println("inserisci solo numeri");
                txtsaldo.setText("");
                txtsaldo.grabFocus();
                return;
            }
            if (txtsaldo.getText().isEmpty()) {
                System.err.println("inserisci il saldo vecchio");
                txtsaldo.grabFocus();
                return;
            } else {
                if (r.getSaldo() < 0) {
                    txtsaldo.setBackground(Color.red);
                    lblsaldo.setBackground(Color.red);
                    lblsaldo.setText("perdita a nuovo:");
                } else {
                    txtsaldo.setBackground(Color.GREEN);
                    lblsaldo.setBackground(Color.GREEN);
                    lblsaldo.setText("utile  a nuovo:");
                }
            }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.