/*
* DietologiaSwing.java
*
* Copyright 2007 Total <total1916@hotmail.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.NumberFormat;
public class DietologiaSwing {
public static void main
(String [] args
) {
menubar.add(file);
file.add(exititem);
strumenti.setText("Strumenti");
menubar.add(strumenti);
strumenti.add(tabitem);
final JFrame tabcost
= new JFrame("Tabella costituzione di Grant");
tabcost.setVisible(false);
}});
tabcost.getContentPane().add(imgtabpanel);
tabcost.pack();
tabcost.setResizable(false);
tabcost.setLocationRelativeTo(null);
tabcost.setVisible(true);
}});
strumenti.add(bmiitem);
bmitxt.setContentType("text/html");
bmitxt.setEditable(false);
String notebmitxt
= "<body bgcolor=\"#FFF870\"> <strong>Note Sul Bmi</strong>"+
"<br><hr>"+
"<br><div align='left'><h4><strong>Tabela di valutazione del bmi</strong></h4></div>"+
"<table><tbody><tr>"+
" <td><strong><h4>18-25</h4></strong></td>"+
" <td><h4>Fattori di rischio minimi</h4></strong> <font size='3'>Il rischio di contrarre malattie cardiovascolari, "+
"<br>diabete non insulino dipendente, ictus cerebrare, ipertensione e' minimo e sottocontrollo."+
"<br> A questo livello, non esiste prova scientifica che perdendo peso possano diminuire i fattori di rischio,"+
"<br> al contrario, si potrebbero presentare altri problemi di salute"+
" </td>"+
"</tr>"+
"<tr>"+
" <td><strong><h4>25-27</h4></strong></td>"+
" <td><strong><h4>Rischio basso/moderato</h4></strong> <font size='3'>Un Bmi uguale a 25 corrisponde al limite oltre "+
"<br>al quale comincia a verificarsi la possibilità di contrarre malattie associate al peso.Oltre questo limite, "+
"<br>le cause associate al rischio di malattia sono in leggero aumento. "+
"<br>Puo' essere opportuno attuare un'alimentazione a basso contenuto di calorie accompagnata da attivita' fisica indispensabile per il mantenimento del peso</td>"+
" </tr>"+
" <tr>"+
" <td><strong><h4>27-30</h4></strong></td>"+
" <td><strong><h4>Rischio moderato/alto</h4></strong> <font size='3'>Aumentano le probabilita' di sviluppare malattie cardiovascolari,"+
"<br> diabete non insulino dipendetente, ictus cerebrale, ipertensione. L'attivita' fisica, unita ad un regime alimentare adeguato,"+
"<br> favorisce il miglioramento delle condizioni cardio-respiratorie e facilita una strategia per perdere peso in modo equilibrato</td>"+
" </tr>"+
" <tr>"+
" <td><strong><h4>30-35</h4></strong></td>"+
" <td><strong><h4>Rischio alto/molto alto</h4></strong> <font size='3'>Si presentano alte probabilità di sviluppare malattie cardiovascolari, "+
"<br>diabete non insulino dipendente, ictus cerebrale, ipertensione, e alcuni tipi di tumore. "+
"<br>E' consigliabile intraprendere tempestivamente comportamenti terapeutici finalizzati a ridurre tali rischi;"+
"<br> a questo livello è utile una terapia comportamentale finalizzata a raforzare la motivazione dell'individuo e la sua capacità di autocontrollo,"+
" associata a dieta e attivita' fisica regolare.</td>"+
" </tr>"+
" <tr>"+
" <td><strong><h4>35-40</h4></strong></td>"+
" <td><strong><h4>Rischio molto alto</h4></strong> <font size='3'>A questo livello è probabile che una o piu delle patologie precedenti sia gia insorta "+
"<br>con una conseguente ripercussione negativa sullo stato di salute. Una terapia possibile, oltre a quelle consigliate al livello precedente, è la chilurgia. "+
"<br>Tuttavia, questa soluzione è praticabile solo in pazienti con gravi problemi di obesità e dopo attenta valutazione medica.</td>"+
" </tr>"+
" <tr>"+
" <td><strong><h4> + 40</h4></strong></td>"+
" <td><strong><h4>Rischio altissimo</h4></strong> <font size='3'>Situazione delicata. Una o piu delle patologie citate sono probabilmente presenti"+
"<br> e occorrono cure apropiate derivanti da un'attenta valutazione della gravità dello stato di salute.</td>"+
" </tr>"+
"</tbody>"+
"</table>"+
"</font></body>";
bmitxt.setText(notebmitxt);
notbmi.setVisible(false);
}});
notbmi.getContentPane().add(notbmipanel);
notbmi.pack();
notbmi.setResizable(false);
notbmi.setLocationRelativeTo(null);
notbmi.setVisible(true);
}});
strumenti.add(infoforitem);
infofortxt.setContentType("text/html");
infofortxt.setEditable(false);
String infoformtxt
= "<body bgcolor=\"#FFF870\"><strong>Informazioni Formule</strong>"+
"<br><hr>"+
"<br><div align=\"left\"><h4><strong>Note sulle formule utilizzate in questo programma</strong></h4></div>"+
"<br><br><b>Formula di broca</b> operazione grossolana semplice ma imprecisa considera solo l'altezza"+
"<br><b>Altezza-100</b> per i maschi, <b>Altezza-104</b> per le femmine"+
"<br><br><b>Forumula di Lorenz</b> assai utilizzata tuttavia non tiene conto dell'eta ne della struttura scheletrica"+
"<br><b>Altezza-100-(Altezza-150)/4</b> per i maschi, <b>Altezza-100-(Altezza-150)/2</b>."+
"<br><br><b>Forumula di Ottaviani-Travia</b> elaborata dal'esperienza professionale di due nutrizionisti Italiani"+
"<br><b>1.012 x Altezza -107.6</b> per i maschi, <b>0.672 x Altezza - 50.95</b>."+
"<br><br><b>Bertheam</b> considera sia l'altezza che l'eta' del'individuo tuttavia è la stessa per maschi e femmine"+
"<br><b>(Altezza-100) x 0.8 + eta/2</b> per i maschi, <b>(Altezza-100) x 0.8 + eta/2</b>."+
"<br><br><b>Forumula di Van der Vael</b> Considera l'altezza e dei parametri fissi rispetto al sesso"+
"<br><b>(Altezza-150) x 0.6 +50</b> per i maschi, <b>(Altezza-150) x 0.75 +50</b>.";
infofortxt.setText(infoformtxt);
infofor.setVisible(false);
}});
infofor.getContentPane().add(infoforpanel);
infofor.pack();
infofor.setResizable(false);
infofor.setLocationRelativeTo(null);
infofor.setVisible(true);
;}});
info.setText("info");
menubar.add(info);
info.add(noteitem);
infotxt.setContentType("text/html");
infotxt.setEditable(false);
String informtxt
= "<body bgcolor=\"#FFF870\"><strong>Info</strong>"+
"<br><hr>"+
"<br><div align=\"left\"><h4><strong>Programma scritto in Java, da Rosso Davide</strong></h4></div>"+
"<br>Contact:"+
"<br>total1916@hotmail.it"+
"<br><br>Le informazioni contenute in questo programma sono state prese da fonti attendibili"+
"<br>tuttavia, non sono da considerare tali in quanto l'autore(Rosso Davide) declina ogni responsabilita'"+
"<br>sull'esattezza dei dati."+
"<br>Version 1.0.0";
infotxt.setText(informtxt);
infof.setVisible(false);
}});
infof.getContentPane().add(infopanel);
infof.pack();
infof.setResizable(false);
infof.setLocationRelativeTo(null);
infof.setVisible(true);
;}});
// SX BORDER LAYOUT
sxpanel.add(title);
sxpanel.add(vuoto);
sxpanel.add(etal);
sxpanel.add(etat);
sxpanel.add(altezzal);
sxpanel.add(altezzat);
sxpanel.add(circpolsol);
sxpanel.add(circpolsot);
sxpanel.add(pesol);
sxpanel.add(pesot);
sxpanel.add(sessol);
//Creo i due radio button e li aggiungo ad un layout che andrà inserito nel mainpanel
groupsex.add(femminar);
groupsex.add(maschior);
radiogroupsex.add(femminar);
radiogroupsex.add(maschior);
sxpanel.add(radiogroupsex);
sxpanel.add(calc);
sxpanel.add(reset);
centerpanel.add(sxpanel);
//DX BORDER LAYOUT
dxpanel.add(image);
centerpanel.add(dxpanel);
etat.setText("");
altezzat.setText("");
circpolsot.setText("");
pesot.setText("");
}
});
Dietologia dietologia = new Dietologia();
float etad = 0;
try {
etas = etat.getText();
etad
= Float.
parseFloat(etas
);
}
float altezzad = 0;
try {
altezzas = altezzat.getText();
altezzad
= Float.
parseFloat(altezzas
);
}
float circpold = 0;
try {
circpols = circpolsot.getText();
circpold
= Float.
parseFloat(circpols
);
}
float pesof = 0;
try {
pesos = pesot.getText();
pesof
= Float.
parseFloat(pesos
);
}
char sesso = 0;
if (femminar.isSelected()){
sesso = 'w';
sex = "una femmina";
sexy = "a";
}
else if (maschior.isSelected()){
sesso = 'm';
sex = "un maschio";
sexy = "o";
}
resulttx.setContentType("text/html");
resulttx.setEditable(false);
float pesobroca = 1;
pesobroca = dietologia.pesoBroca(altezzad, sesso);
float pesolorenz = 1;
pesolorenz = dietologia.pesoLorenz(altezzad, sesso);
float pesoottavianitravia = 1;
pesoottavianitravia = dietologia.pesoOttavianiTravia(altezzad, sesso);
float pesobertheam = 1;
pesobertheam = dietologia.pesoBertheam(altezzad, sesso, etad);
float pesovandervael = 1;
pesovandervael = dietologia.pesoVanderVael(altezzad, sesso);
float costitution = 0;
costitution = dietologia.costCorpGrant(altezzad, circpold, sesso);
String costituzioneimg
= "noimg.jpg";
if (costitution == 1){
costituzionecorp = "Longilinea";
costituzioneimg = "long.jpg";
}
else if(costitution == 2){
costituzionecorp = "Normolinea";
costituzioneimg = "norm.jpg";
}
else if(costitution == 3){
costituzionecorp = "Brevilinea";
costituzioneimg = "brev.jpg";
}
JLabel imagesudl
= new JLabel("La tua costituzione corporea secondo Grant e': "+costituzionecorp
);
sudpanel.add(imagesudl);
sudpanel.add(imagesudim);
fenetre.setVisible(false);
}
});
//istanzio il metodo Bmi
float bmi = 0;
bmi = dietologia.Bmi(pesof, altezzad);
//istanzio il metodo spiegaBmi
float spiegabmi = 0;
spiegabmi = dietologia.spiegaBmi(bmi,sesso);
//ciclo che permette di visualizzare un stringa in base al return di spiegaBmi
if (spiegabmi == 1){
bmiind = "con una grave obesita'";
}
else if(spiegabmi == 2){
bmiind = "con un grosso problema di obesita'";
}
else if(spiegabmi == 3){
bmiind = "con un grado avanzato di obesita'";
}
else if(spiegabmi == 4){
bmiind = "con un obesita' di primo livello";
}
else if(spiegabmi == 5){
bmiind = "sovrappeso";
}
else if(spiegabmi == 6){
bmiind = "nel pesoforma";
}
else if(spiegabmi == 7){
bmiind = "sottopeso";
}
style.setMaximumFractionDigits(2);
style.setMinimumFractionDigits(2);
String resultstring
= "<body bgcolor=\"#FFF870\"><p align='center'><font size=\"4\"><b><h2>Risultato</b></h2>"+
"<br>Il tuo peso ideale secondo il metodo di <b>Broca</b> e': "+String.
valueOf(style.
format(pesobroca
))+
"<br>il tuo peso ideale secondo il metodo di <b>Lorenz</b> e': "+String.
valueOf(style.
format(pesolorenz
))+
"<br>il tuo peso ideale secondo il metodo di <b>Ottaviani-Travia</b> e': "+String.
valueOf(style.
format(pesoottavianitravia
))+
"<br>il tuo peso ideale secondo il metodo di <b>Bertheam</b> e': "+String.
valueOf(style.
format(pesobertheam
))+
"<br>il tuo peso ideale secondo il metodo di <b>Van der Vael</b> e': "+String.
valueOf(style.
format(pesovandervael
))+
"<br>il tuo BMI(Body Mass Index) e' pari a: "+String.
valueOf(style.
format(bmi
))+ " indica che sei un/a ragazzo/a: "+
"<br>--->"+bmiind;
resulttx.setText(resultstring);
fenetre.getContentPane().add(fenetrepanel);
fenetre.pack();
fenetre.setResizable(false);
fenetre.setLocationRelativeTo(null);
fenetre.setVisible(true);
}
});
finestra.getContentPane().add(mainpanel);
finestra.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE);
finestra.setResizable(false);
finestra.pack();
finestra.setLocationRelativeTo(null);
finestra.setVisible(true);
}
}