package lt.ktu.diet; /** eguogis * Sutvarkiau problemas su virsutinem ir apatinem ribom. * Faile Constants dabar galima nustatyti apatines ir virsutines toleravimo ribas. * Pataisyta optimizavimo formule. * Blogai veikdavo, kai produktai buvo atrenkami pagal skoni. Rezultatai budavo atrenkami ne is to masyvo. * Radau bugiuka solve.java, del kurio kartais mesdavo ArrayOutOfBoundsException * Ziureti TODO. Jei solve.java naudojamas ir kitose programose, reiketu pakeisti. * Iskeliau konstantas i atskira klase. * Pravaliau koda, bet dar reiktu daug valymo... * No offence, bet UI ir duomenu ivedimas daryti ne programuotojo, arba programuotojo be realios darbo patirties :) */ /**********cmbbxIAddTaste********************************************************************* * Dietos uzdavinio sprendimo klase * ***************************************************** * Pataisymus iki 2007 01 24 atliko MII doktorantai: Rasa Karbauskaite, Alma Muolyte, Ernestas Filatovas * Pradinis kodas paimtas is "dieta_inga". * * Pakeitimai: * 1. Atsakymuose pateikiant dieta, isvedamas tik vienas patiekalas to paties pavadinimo, * o anksciau budavo ju daugiau (pvz., 12 rugstiniu sriubu) * 2. Isvedant rezulatatus, skaicai pateikiami dvieju skaiciu po kablelio tikslumu. (pvz., 12,56) * Tuo tikslu buvo sukurta atskira klase "DoubleToString.java" . * 3. Isvedant rezulatatus, dieta sudarantys elemntai rodomi su ju matavimo vienetais (pvz., Mg, g, kcal) * 4. Pataisėme tikslo funkciją. 91 formulėje (iš Jūsų skaidrių) buvo praleistas koeficientas b1 (reikalingas kalorijų kiekis). * 5. Testuojant skaičiavimo paklaida negali būti lygi 0. Ji turi būti tik labai labai artima 0, pvz.: 0.0001. * * * * *********************************************************** * ----------------------------------------------------------------------------- * Atliko: Vidas Razmislevicius IT-3/2,Inga Liutkeviciute IT-3/1 1/1 2006 * Pradinis kodas paimtas is: https://pilis.if.ktu.lt/~jmockus/dietadoviltis/DietaV4.zip * * 1. Padaryta, kad butu galima pasirinkti kokiam zmogui bus formuojama dieta: * a) pagal amziu (atskirai vaikams), pagal lyti, pagal fizini aktyvuma * b) galima pasirinkti papildomas savybes - ligos, moterims nestumas ir vaiko zindymo laikotarpis * 2. Iskeltas paklaidos koef., dabar ji galima redaguoti. Paklaida - tai kiek * leidziama pazeisti nustatytus apribojimus: ai-p*ai <= xi <= ai+p*ai - tai suteikia didesne sprendiniu aibe * Buvo ivesta tikriausiai todel, kad grieztai lankantis apribojimu, nebudavo gaunamas joks prendinys * 3. Pakeista tikslo funkcija. Pridedas maisto ivairumo parametras (91 form., sliden.pdf, 55p) * 4. Sukurti papildomi maisto produktu-patiekalu sarasai: * a) duom.txt - bendras sarasas * b) duomv.txt - maistas vegetarams * Pradinis kodas: ***** * is http://soften.ktu.lt/~mockus/dietalast/contdietalast.html * ----------------------------------------------------------------------------- * Komentarai ir pakeitimai: Marijus Doviltis IFM-0/1 2005 * * Atlikta: * 1. Kodas papildytas komentarais, sutvarkyti pavadinimai,kad atspindetu tuos * duomenis kurie imami is lenteles o ne Mg zymetu Na ir pan. Taip pat buvo * naudojamas Cl vietoj J (Chloras vietoj Jodo), Cl nera normose, be to jis * nera is tu elementu kurie paprastai ivertinami. Mano nuomone rusiskoje * medziagoje Cl taip pat panaudotas vietoje J, juo lab kad sutikrinus * duomenis su http://soften.ktu.lt/~mockus/dietalagu/dieta-prods.txt * cl kiekis atitinka J kieki. * 2. Perziureti skaiciavimai, pasalinti nereikalingi, painus ir neaisku kam * skirti perskaiciavimai is vieno dydzio i kita o paskui vel atgal. * 3. Is naujo isversta rusiska medziaga, dalis patikrinta ir pakoreguota * pagal kitus saltinius * 4. Perdelioti duomenu laukai applete, dalis ju sugrupuota. Tai turetu * palengvinti tolimesnes modifikacijas jei bus pridedami apribojimai, * be to taip patogiau naudotis. * 5. Patiekalas yra neskaidomas (t.y. jis gali buti: 0, 1,2... , bet ne 0.0002 * ar pan. Be to,patiekalo maistiniai elementai neskaiciuojami kilogramais * ty ne dauginti is 10 * 6. Perkelta galimybe is siu metu darbo, kad itrauktu tik tuos produktus kuriu * skonis atitinka pasirinkta su intervalu [pasirinkas:10] * Bet sitas pasirinkimas atliekamas atskiru parametru o ne bendru kaip * buvo padaryta kolegu. * 7. Sutvarkyta optimizavimo formule pagal teorija, kad atitiktu realius * rezultatus. * 8. Isvedami visi optimizavimo parametrai. Kartais pranesimas - "Virsijote * rekomenduojama norma" gaunamas ,nes kelis kartus virsyjama norma pagal * vitaminus ar mineralus. * 9. Dabartiniai skaiciavimai atliekami su 12 grieztu ribojimu (ty virsutine * ir apatine ribos nurodytos 12 dedamuju) visi kiti apriboti is apacios. * Grieztai apribota: Cal,Baltymai,Riebalai,Angliavandelniai * vitaminai:A,B1,B2,B3,B6,B12,PP; * mikroelementai: Ca,S; * Apribojimas is apacios (ty ne maziau negu reikia) sukuria tarsi laisves * laipsnius. Is apacios apriboti yra: * vitaminai: C,E; * mikroelementai: P(Fosforas),Na; * 10.(papildymai)Teorine formule pakoreguota(po konsultaciju su M.Patasiumi * prieita isvados kad dydziai prie x ieina tiesiogiai (ty ci-si+grozis*ai1), * o grozis*bi1 pridedamas prie visu patiekalu ir kaip konstanta tik pakelia * dydzius bet nuo to sprendiniai nesikeicia. * 11.Grozio faktorius ivedamas nebe indeksais bet laisvu skaičiumi. ***** * Dar reikia atlikti (pasiulymai kitiem metam): * 1. Patikslinti duomenis lenteleje ir ja papildyti * 2. Kadangi dienos normos yra atskirose lentelese, jos priklauso ne tik nuo * mases, bet ir nuo amziaus, gyvenimo budo. Vartotojui patogu butu siuos * duomenis gauti migtuko paspaudimu ir pasirinkti norimus (kvepia dideliu * programavimu) * **************************************************************************** * Naudingi parametrai: * Nurodant elemento pozicija applete naudojamos koordinates (x1,y1, delta x,delta y) * (x1,y1 - virsutinis kairysis taskas,delta x,delta y-dydis) * x dideja nuo kaires, y dideja nuo virsaus *------------------------------------------------ **/ import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.text.DecimalFormat; import java.util.StringTokenizer; import javax.swing.ButtonGroup; import javax.swing.DefaultComboBoxModel; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextField; import lp.lprec; import lp.solve; import lt.ktu.diet.common.Constants; import lt.ktu.diet.common.Converter; import com.symantec.itools.javax.swing.borders.LineBorder; import com.symantec.itools.javax.swing.models.StringComboBoxModel; import com.symantec.itools.javax.swing.models.StringTableModel; import com.symantec.itools.lang.Context; public class Dieta extends JApplet { private static final long serialVersionUID = 1L; //Konstantos. Neisiaiskines ka daro - nekisk nagu static final short LE = 0; static final short GE = 2; int productCount; // pagrindinio produktu saraso dydis int activProdCnt; //produktu skaicius kurie itraukiami i skaiciavimus Product produktai[]; //pagrindinis produktu sarasas Product prodActiv[]; //aktyviu produktu sarasas Product produktai1[];// laikinas sarasas //kiti kintamieji,vaizdo elementai ir tt private boolean duomenuKlaida; private String failas; private JDialog D; private JLabel lblFailas; private JTextField txtfldFailas; private JButton btnOK; private JTabbedPane tbdpnlBendras; private JPanel pnlDuomenys; private JScrollPane scrlpnLentele; private JTable tblLentele; private JLabel lblLentelesPav; private JLabel lblRedagavimas; private JLabel lblName; private JTextField txtfldName; private JLabel lblPrice; private JTextField txtfldPrice; private JLabel lblCalories; private JTextField txtfldCalories; private JLabel lblProteins; private JTextField txtfldProteins; private JLabel lblFats; private JTextField txtfldFats; private JLabel lblCarbohydrates; private JTextField txtfldCarbohydrates; private JLabel lblTaste; private JComboBox cmbbxTaste; private JButton btnLoad; private JButton btnNew; private JButton btnUpdate; private JButton btnNext1; private JButton btnDelete; private JCheckBox chkbxDish; private JLabel lblDish; private JLabel JLabel5; private JLabel JLabel6; private JLabel JLabel7; private JLabel JLabel8; private JLabel JLabelB22; private JLabel JLabelB33; private JLabel JLabelB66; private JLabel JLabelB122; private JLabel JLabelPP; private JLabel JLabelCa2; private JLabel JLabelNa2; private JLabel JLabelS2; private JLabel JLabelP2; private JLabel JLabelJ2; private JTextField txtfldVitaminC; private JTextField txtfldVitaminA; private JTextField txtfldMineralCa; private JTextField txtfldMineralNa; private JPanel pnlPageidavimai; private JTextField txtfldWeight; private JLabel lblWeight; private JButton btnNext2; private JComboBox cmbbxOptimization; private JLabel lblOptimization; private JTextField txtfldVitaB2; private JTextField txtfldVitaB3; private JTextField txtfldVitaB6; private JTextField txtfldVitaB12; private JTextField txtfldVitaPP; private JTextField txtfldMCA; private JTextField txtfldMNa; private JTextField txtfldMS; private JTextField txtfldMP; private JTextField txtfldMJ; private JLabel lblImportance; private JTextField cmbbxImportance; private JLabel JLabel9; private JLabel JLabel10; private JLabel JLabel11; private JLabel JLabel12; private JLabel JLabel13; private JLabel JLabel14; private JLabel JLabel15; private JPanel pnlRezultatai; private JScrollPane JScrollPane1; private JTable JTable1; private JLabel JLabel1; private JLabel JLabel2; private JLabel JLabel3; private JLabel JLabel4; private JLabel lblCaloriesTotal; private JLabel lblProteinsTotal; private JLabel lblFatsTotal; private JLabel lblCarbohydratesTotal; private JLabel lblPriceTTlbl; private JLabel lblPriceTotal; private JLabel lblPriceTTlblS; private JLabel lblPriceTotalS; private JLabel lblVitATotal; private JLabel lblVitCTotal; private JLabel lblVitB1Total; private JLabel lblVitB2Total; private JLabel lblVitB3Total; private JLabel lblVitB6Total; private JLabel lblVitB12Total; private JLabel lblVitETotal; private JLabel lblVitPPTotal; private JLabel lblMinCaTotal; private JLabel lblMinNaTotal; private JLabel lblMinSTotal; private JLabel lblMinPTotal; private JLabel lblMinJTotal; private JLabel lblVitATTlbl; private JLabel lblVitB1TTlbl; private JLabel lblVitB2TTlbl; private JLabel lblVitB3TTlbl; private JLabel lblVitB6TTlbl; private JLabel lblVitB12TTlbl; private JLabel lblVitCTTlbl; private JLabel lblVitETTlbl; private JLabel lblVitPPTTlbl; private JLabel lblMinCaTTlbl; private JLabel lblMinNaTTlbl; private JLabel lblMinSTTlbl; private JLabel lblMinPTTlbl; private JLabel lblMinJTTlbl; private StringTableModel tblmdlLentele; private StringComboBoxModel cmbbxmdlTaste; private StringComboBoxModel cmbbxmdlProteinsW; private StringComboBoxModel cmbbxmdlfatsW; private StringComboBoxModel cmbbxmdlCarbohydratesW; private StringComboBoxModel cmbbxmdlCaloriesW; private LineBorder lineBorder1; private StringTableModel tblmdlRezultatai; private StringComboBoxModel cmbbxmdlOptimize; private StringComboBoxModel cmbbxmdlBias; private JLabel lblStatus; private StringComboBoxModel cmbbxmdlITaste; private StringComboBoxModel cmbbxmdlIPrice; private StringComboBoxModel cmbbxmdlImportance; private JTextField ReikiaAngl; private JTextField ReikiaBalt; private JTextField ReikiaFosf; private JTextField ReikiaKal; private JTextField ReikiaKalc; private JTextField ReikiaNatr; private JTextField ReikiaRieb; private JTextField ReikiaSer; private JTextField ReikiaJ; private JTextField ReikiaVitA; private JTextField ReikiaVitB1; private JTextField ReikiaVitB2; private JTextField ReikiaVitB3; private JTextField ReikiaVitB6; private JTextField ReikiaVitB12; private JTextField ReikiaVitC; private JTextField ReikiaVitE; private JTextField ReikiaVitPP; private JLabel jLabel1; private JLabel jLabel2; private JLabel jLabel3; private JLabel jLabel4; private JLabel jLabel5; private JLabel jLabel6; private JLabel jLabel7; private JLabel jLabel8; private JLabel jLabel9; private JLabel jLabel10; private JLabel jLabel11; private JLabel jLabel12; private JLabel jLabel13; private JLabel jLabel14; private JLabel jLabel15; private JLabel jLabel16; private JLabel jLabel17; private JLabel jLabel18; private JLabel jLabel19; private JLabel jLabel20; private JLabel jLabel21; private JLabel jLabel22; JLabel JLabelAddOnTaste; JComboBox cmbbxIAddTaste; /* * ----------<< Laurynas Simaitis >>------------------- * nauji */ private JTextField jReikalavimuTekstas; // nauju reikalavimu idejimui (paste) private JTextField jPaklaida; // skaiciavimo paklaidai nustatyti (esant standartiniai paklaida kartais kartais neduoda rezultatu) private JTextField jIvairove; // maisto ivairoves koef. private JPanel jpnlIkrautiReikalavimus; // panele nauju reikalavimu ikrovimui private JButton jIkrautiReikalavimus; // Ikrauna reikalavimus is teksto lauko "jReikalavimaiVisi" private String dienosReikalavimai[] ; // masyvas, saugauntis dienos reikalavimus tekstiniame formate private String papildomiReikalavimai_V[]; // papildomo reikalavimai, esant papildomoms salygoms: nestumas, zindymas, ivairios ligos - duomenys vyrams private String papildomiReikalavimai_M[]; // papildomo reikalavimai, esant papildomoms salygoms: nestumas, zindymas, ivairios ligos - duomenys moterims private JRadioButton jrbtVyras; // radio mygtukas, pasirenkant vyro tipa private JRadioButton jrbtMoretis; // radio mygtukas, pasirenkant moteris tipa private JRadioButton jrbtVaikas; // radio mygtukas, pasirenkant vaiko tipa private ButtonGroup jrbtgrTipai; // radio mydtuku grupe private JCheckBox jchbPapildimai; // papildomu reikalavimai, esant nėštumui, ligos atveju arba kitos sąlygos private JComboBox jcbPapildomosSalygos_V; // papildomu salygu pasirinkimas private JComboBox jcbPapildomosSalygos_M; // papildomu salygu pasirinkimas private JButton jbtnPasirinkimas; // ikrauti pageidavimus ir pasirikomo private JButton jbtnTekstas; // ikrauti pageidavimus is teksto private JComboBox cmbbxAktyvumas; // automatiniam pageidavimu ikrovimui private JComboBox cmbbxAmzius; // automatiniam pageidavimu ikrovimui private JComboBox cmbbxVaikoAmzius; // automatiniam pageidavimu ikrovimui private JCheckBox chkbxPapildoma; // pazymejimas, ar reikia iskaiciuoti papildomus pageidavimus private JLabel jLabelAktyvumas; private JLabel jLabelAmzius; private JLabel jLabelPapildoma; private JLabel jLabelPaklaida; private JLabel jLabelIvairovesIvedimas; private JLabel jLabelIvairovesSprendimas; private JLabel jLabelIvairovesSprendimas2; private String sPavPapildomi_V[]; // papildimu reikalavimu pavadinimu masyvas (combobox'ui); vyrams private String sPavPapildomi_M[]; // papildimu reikalavimu pavadinimu masyvas (combobox'ui); moterims private JTextField tfldPapildomi; // papildomu reikalavimu pavaizdavimui private Double fMaistoIvairumas; // kriterijus, ivertinantis maisto ivairuma //aktyvumas,amzius,svoris private String pageidavimaiStandartiniai[] = { " 37.50 0.94 1.17 5.81 1000 900 1500 150 60 0.80 10 1.6 1.7 1 17 3", // (0) 1.5V19-34 70 " 35.63 0.89 1.11 5.53 1000 900 1500 150 60 0.80 10 1.7 1.7 1.1 19 3", // (1) 1.5V19-34 80 " 36.43 0.90 1.13 5.64 1000 900 1500 150 60 0.80 10 1.5 1.7 0.9 17 3", // (2) 1.5V35-49 70 " 33.75 0.85 1.05 5.24 1000 900 1500 150 60 0.80 10 1.6 1.7 1 18 3", // (3) 1.5V35-49 80 " 31.07 0.77 0.97 4.81 1200 900 1500 150 60 0.80 10 1.3 1.7 0.8 14 3", // (4) 1.5V50-64 70 " 30.00 0.75 0.94 4.65 1200 900 1500 150 60 0.80 10 1.4 1.7 0.9 16 3", // (5) 1.5V50-64 80 " 35.45 0.89 1.11 5.49 1000 900 1500 150 60 0.80 10 1.2 1.4 0.7 13 3", // (6) 1.5M19-34 55 " 34.62 0.86 1.08 5.37 1000 900 1500 150 60 0.80 10 1.4 1.4 0.8 15 3", // (7) 1.5M19-34 65 " 35.45 0.89 1.11 5.49 1000 900 1500 150 60 0.80 10 1.2 1.4 0.7 13 3", // (8) 1.5M35-49 55 " 32.31 0.82 1.00 5.00 1000 900 1500 150 60 0.80 10 1.3 1.4 0.8 14 3", // (9) 1.5M35-49 65 " 32.73 0.82 1.02 5.07 1200 900 1500 150 60 0.80 10 1.1 1.4 0.7 12 3", // (10) 1.5M50-64 55 " 30.00 0.75 0.94 4.65 1200 900 1500 150 60 0.80 10 1.2 1.4 0.7 13 3", // (11) 1.5M50-64 65 " 42.50 1.06 1.33 6.59 1000 900 1500 150 60 0.80 10 1.8 1.7 1.1 20 3", // (12) 1.7V19-34 70 " 40.38 1.01 1.26 6.26 1000 900 1500 150 60 0.80 10 1.9 1.7 1.2 21 3", // (13) 1.7V19-34 80 " 41.29 1.03 1.29 6.40 1000 900 1500 150 60 0.80 10 1.7 1.7 1.1 19 3", // (14) 1.7V35-49 70 " 38.25 0.96 1.19 5.93 1000 900 1500 150 60 0.80 10 1.8 1.7 1.2 20 3", // (15) 1.7V35-49 80 " 35.21 0.89 1.10 5.46 1200 900 1500 150 60 0.80 10 1.5 1.7 0.9 16 3", // (16) 1.7V50-64 70 " 34.00 0.85 1.06 5.28 1200 900 1500 150 60 0.80 10 1.6 1.7 1 18 3", // (17) 1.7V50-64 80 " 40.18 1.00 1.25 6.25 1000 900 1500 150 60 0.80 10 1.3 1.4 0.8 15 3", // (18) 1.7M19-34 55 " 39.23 0.98 1.22 6.08 1000 900 1500 150 60 0.80 10 1.5 1.4 1 17 3", // (19) 1.7M19-34 65 " 40.18 1.00 1.25 6.25 1000 900 1500 150 60 0.80 10 1.3 1.4 0.8 15 3", // (20) 1.7M35-49 55 " 36.62 0.92 1.14 5.68 1000 900 1500 150 60 0.80 10 1.4 1.4 0.9 16 3", // (21) 1.7M35-49 65 " 37.09 0.93 1.15 5.75 1200 900 1500 150 60 0.80 10 1.2 1.4 0.8 14 3", // (22) 1.7M50-64 55 " 34.00 0.85 1.06 5.29 1200 900 1500 150 60 0.80 10 1.3 1.4 0.8 15 3", // (23) 1.7M50-64 65 " 50.00 1.26 1.56 7.76 1000 900 1500 150 60 0.80 10 2.1 1.7 1.3 23 3", // (24) 2.0V19-34 70 " 47.50 1.19 1.48 7.36 1000 900 1500 150 60 0.80 10 2.3 1.7 1.4 25 3", // (25) 2.0V19-34 80 " 48.57 1.21 1.51 7.53 1000 900 1500 150 60 0.80 10 2 1.7 1.3 22 3", // (26) 2.0V35-49 70 " 45.00 1.13 1.40 6.98 1000 900 1500 150 60 0.80 10 2.2 1.7 1.4 24 3", // (27) 2.0V35-49 80 " 55.71 1.04 1.29 6.43 1200 900 1500 150 60 0.80 10 1.7 1.7 1.1 19 3", // (28) 2.0V50-64 70 " 40.00 1.00 1.25 6.20 1200 900 1500 150 60 0.80 10 1.9 1.7 1.2 21 3", // (29) 2.0V50-64 80 " 47.27 1.18 1.47 7.33 1000 900 1500 150 60 0.80 10 1.6 1.4 1 17 3", // (30) 2.0M19-34 55 " 46.15 1.15 1.43 7.15 1000 900 1500 150 60 0.80 10 1.8 1.4 1.1 20 3", // (31) 2.0M19-34 65 " 47.27 1.18 1.47 7.33 1000 900 1500 150 60 0.80 10 1.6 1.4 1 17 3", // (32) 2.0M35-49 55 " 43.08 1.08 1.34 6.68 1000 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3", // (33) 2.0M35-49 65 " 43.64 1.09 1.36 6.76 1200 900 1500 150 60 0.80 10 1.4 1.4 0.9 16 3", // (34) 2.0M50-64 55 " 40.00 1.00 1.25 6.20 1200 900 1500 150 60 0.80 10 1.6 1.4 1 17 3", // (35) 2.0M50-64 65 " 55.00 1.37 1.71 8.53 1000 900 1500 150 60 0.80 10 2.3 1.7 1.4 25 3", // (36) 2.2V19-34 70 " 52.25 1.31 1.63 8.09 1000 900 1500 150 60 0.80 10 2.5 1.7 1.6 28 3", // (37) 2.2V19-34 80 " 53.43 1.34 1.66 8.27 1000 900 1500 150 60 0.80 10 2.2 1.7 1.4 25 3", // (38) 2.2V35-49 70 " 49.50 1.24 1.54 7.68 1000 900 1500 150 60 0.80 10 2.4 1.7 1.5 26 3", // (39) 2.2V35-49 80 " 45.57 1.14 1.41 7.06 1200 900 1500 150 60 0.80 10 1.9 1.7 1.2 21 3", // (40) 2.2V50-64 70 " 44.00 1.10 1.38 6.83 1200 900 1500 150 60 0.80 10 2.1 1.7 1.3 23 3", // (41) 2.2V50-64 80 " 52.00 1.31 1.62 8.05 1000 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3", // (42) 2.2M19-34 55 " 50.77 1.28 1.58 7.88 1000 900 1500 150 60 0.80 10 2 1.4 1.3 22 3", // (43) 2.2M19-34 65 " 52.00 1.31 1.62 8.05 1000 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3", // (44) 2.2M35-49 55 " 47.38 1.18 1.48 7.34 1000 900 1500 150 60 0.80 10 1.8 1.4 1.2 20 3", // (45) 2.2M35-49 65 " 48.00 1.20 1.49 7.44 1200 900 1500 150 60 0.80 10 1.6 1.4 1 17 3", // (46) 2.2M50-64 55 " 44.00 1.11 1.37 6.82 1200 900 1500 150 60 0.80 10 1.7 1.4 1.1 19 3", // (47) 2.2M50-64 65 " 1400 45 50 193 700 800 1500 70 40 0.40 5 0.7 0.8 0.9 9 2", // (48) -1 - 3 m. " 1700 55 60 235 700 800 1500 90 45 0.50 6 0.9 1 1.2 11 2.5", // (49) -4 - 6 m. " 2030 65 66 2194 700 800 1500 120 45 0.70 7 1.2 1.4 1.4 13 3", // (50) -7 - 10 m. " 2420 75 80 350 800 1200 1500 150 50 1.00 8 1.4 1.6 1.7 16 3", // (51) Bern.11 - 14 m. " 2200 70 75 311 800 1200 1500 150 50 0.80 8 1.1 1.3 1.5 13 3", // (52) Merg. " 2890 95 93 396 800 1200 1500 150 60 1.00 10 1.4 1.7 2 18 3", // (53) Bern.15 - 18 m. " 2400 80 85 329 800 1200 1500 150 60 0.80 8 1.1 1.3 1.6 14 3" // (54) Merg. }; /* * ------------------------------------------------------------ * Pabaiga */ /******************************************************************************* * * Privacios klases manipuliacijai su applet objekto elementais * *******************************************************************************/ class SymItem implements ItemListener { public void itemStateChanged(ItemEvent event) { Object object = event.getSource(); if(object == cmbbxOptimization) cmbbxOptimization_itemStateChanged(event); else if(object == jrbtVyras || object == jrbtMoretis || object == cmbbxAmzius || object == cmbbxAktyvumas || object == jcbPapildomosSalygos_V || object == jcbPapildomosSalygos_M || object == chkbxPapildoma) rbSuaugusieji_itemStateChanged(event); else if(object == jrbtVaikas || object == cmbbxVaikoAmzius) rbVaikai_itemStateChanged(event); } SymItem() { } } /*------------------------------------------------------------*/ class SymAction implements ActionListener { public void actionPerformed(ActionEvent event) { Object object = event.getSource(); if(object == btnLoad) btnLoad_actionPerformed(event); else if(object == btnNext2) btnNext2_actionPerformed(event); if(object == btnNext1) btnNext1_actionPerformed(event); else if(object == btnOK) btnOK_actionPerformed(event); else if(object == btnNew) btnNew_actionPerformed(event); else if(object == btnUpdate) btnUpdate_actionPerformed(event); else if(object == btnDelete) btnDelete_actionPerformed(event); else if (object == jbtnTekstas) jbtnTekstas_actionPerformed(event); } SymAction() { } } /*------------------------------------------------------------*/ class SymMouse extends MouseAdapter { public void mouseClicked(MouseEvent event) { Object object = event.getSource(); if(object == tblLentele) tblLentele_mouseClicked(event); } SymMouse() { } } /******************************************************************************* * Metodai: darbas su duomenimis ******************************************************************************/ /* ------------------------------------ * metodas Clear isvalo duomenu laukus * ------------------------------------ */ void Clear() { txtfldName.setText(""); txtfldPrice.setText(""); txtfldCalories.setText(""); txtfldProteins.setText(""); txtfldFats.setText(""); txtfldCarbohydrates.setText(""); txtfldVitaminC.setText(""); txtfldVitaminA.setText(""); txtfldMineralCa.setText(""); txtfldMineralNa.setText(""); txtfldVitaB2.setText(""); txtfldVitaB3.setText(""); txtfldVitaB6.setText(""); txtfldVitaB12.setText(""); txtfldMCA.setText(""); txtfldMNa.setText(""); txtfldMS.setText(""); txtfldVitaPP.setText(""); txtfldMP.setText(""); txtfldMJ.setText(""); cmbbxTaste.setSelectedIndex(-1); chkbxDish.setSelected(false); } /* ------------------------------------ * metodas btnDelete_actionPerformed * istrina viena eilute is duomenu lenteles * ------------------------------------ */ void btnDelete_actionPerformed(ActionEvent event) { int nr = tblLentele.getSelectedRow(); tblmdlLentele.removeRow(nr); Clear(); } /* ------------------------------------ * metodas btnLoad_actionPerformed * atidaro duomenu faila ir jo duomenis * atvaizduoja ekrane * ------------------------------------ */ void btnLoad_actionPerformed(ActionEvent event) { D.setVisible(true); URL fileURL = null; BufferedReader dataStream = null; int n = 0; try { fileURL = new URL(String.valueOf(getCodeBase()) + failas); InputStream input = fileURL.openStream(); dataStream = new BufferedReader(new InputStreamReader(input)); lblStatus.setText("File " + fileURL.toString() + " opened"); String s = dataStream.readLine(); Integer sk = new Integer(s); n = sk.intValue(); String strduom[] = new String[n]; for (int i = 0; i < n; i++) strduom[i] = dataStream.readLine(); tblmdlLentele.setItems(strduom); dataStream.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { lblStatus.setText("Error while reading file "+failas); e.printStackTrace(); } } /* * Is failo ikrauna papildomus pageidavimus Vyrams - ivairios ligos // failo * strutura: //------------------------------------------------------ // //Atvejo pavadinimas // energ balt rieb angl Ca P Na J C A E B1 B2 * B6 PP B12 1-nam kilogramui. // ir t.t. * //------------------------------------------------------ */ private void ikrautiPapildomuReikalavimuSarasa_V(String failas) { URL fileURL = null; BufferedReader dataStream = null; int n = 0; try { fileURL = new URL(String.valueOf(getCodeBase()) + failas); InputStream input = fileURL.openStream(); dataStream = new BufferedReader(new InputStreamReader(input)); String s = dataStream.readLine(); Integer sk = new Integer(s); n = sk.intValue() + 1; papildomiReikalavimai_V = new String[n]; sPavPapildomi_V = new String[n]; sPavPapildomi_V[0] = "sveikas"; papildomiReikalavimai_V[0] = "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"; for (int i = 1; i < n; i++) { sPavPapildomi_V[i] = dataStream.readLine(); papildomiReikalavimai_V[i] = dataStream.readLine(); } dataStream.close(); } catch (IOException e) { lblStatus.setText("Error while reading file "+failas); e.printStackTrace(); } } /* * Is failo papild ikrauna papildomus pageidavimus moterims nestumui, * zindymus, sergant ivairiomis ligomis // failo strutura: * //------------------------------------------------------ // //Atvejo pavadinimas // energ balt rieb angl Ca P Na J C A E B1 * B2 B6 PP B12 1-nam kilogramui. // ir t.t. * //------------------------------------------------------ */ private void ikrautiPapildomuReikalavimuSarasa_M(String failas) { URL fileURL = null; BufferedReader dataStream = null; int n = 0; try { fileURL = new URL(String.valueOf(getCodeBase()) + failas); InputStream input = fileURL.openStream(); dataStream = new BufferedReader(new InputStreamReader(input)); String s = dataStream.readLine(); Integer sk = new Integer(s); n = sk.intValue() + 1; papildomiReikalavimai_M = new String[n]; sPavPapildomi_M = new String[n]; sPavPapildomi_M[0] = "sveika"; papildomiReikalavimai_M[0] = "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"; for (int i = 1; i < n; i++) { sPavPapildomi_M[i] = dataStream.readLine(); papildomiReikalavimai_M[i] = dataStream.readLine(); } dataStream.close(); } catch (IOException e) { lblStatus.setText("Error while reading file " + failas); e.printStackTrace(); } } /* * ------------------------------------ * metodas btnNew_actionPerformed iveda * nauja produkta/patiekala i duomenu lentele * ------------------------------------ */ void btnNew_actionPerformed(ActionEvent event) { String temp[] = new String[1]; try { String tmpPatiekalas; if (chkbxDish.isSelected()) tmpPatiekalas = "1"; else tmpPatiekalas = "0"; /******************************************************************************* * CIA(ZEMIAU) REIKIA SUSUMUOTI VISUS ELEMENTUS IS TEXBOKSU TIKSLIA TVARKA !!! * EILE(TVARKA) TOKIA : PRODUKAS,BALTYMAI(PROTEISNS),RIEBALAI(FATS), * ANGLIAVANDENIAI(CARBOHYDRAUTES), * KALORIJOS,A,E,C,B1,B2,B3,B6,B12,PP,CA,NA,S,FTOR(P),J(JODAS),VAIZDAS, * PATIEKALAS,KAINA. Patiekas pridedamas taip : ... + "," + tmpPatiekalas + * ","+... *Marijus: BUVO pamirsta prideti patiekalo pozymi :)) ******************************************************************************/ temp[0] = txtfldName.getText() + "," + txtfldProteins.getText() + "," + txtfldFats.getText() + "," + txtfldCarbohydrates.getText() + "," + txtfldCalories.getText() + "," + txtfldVitaminC.getText() + "," + txtfldVitaminA.getText() + "," + txtfldMineralCa.getText() + "," + txtfldMineralNa.getText() + "," + txtfldVitaB2.getText() + "," + txtfldVitaB3.getText() + "," + txtfldVitaB6.getText() + "," + txtfldVitaB12.getText() + "," + txtfldVitaPP.getText() + "," + txtfldMCA.getText() + "," + txtfldMNa.getText() + "," + txtfldMS.getText() + "," + txtfldMP.getText() + "," + txtfldMJ.getText() + "," + cmbbxTaste.getSelectedItem().toString() + "," + tmpPatiekalas.toString() + "," + txtfldPrice.getText(); if (tblLentele.getRowCount() == 1) tblmdlLentele.setItems(temp); else tblmdlLentele.addRow(temp[0]); Clear(); } catch (NullPointerException _ex) { lblStatus.setText("Please enter all product fields!!!"); } } /* * ------------------------------------ * metodas btnNext1_actionPerformed * Atlieka veiksma "Toliau" 1. is duomenu ivedimo lango eina i optimizavimo * parametru nustatymo langa * ------------------------------------ */ void btnNext1_actionPerformed(ActionEvent event) { formProduct(tblmdlLentele); if(productCount == 0) lblStatus.setText("No data"); else if(!duomenuKlaida) { lblStatus.setText(""); pnlPageidavimai.setEnabled(true); tbdpnlBendras.setSelectedIndex(1); } else { lblStatus.setText("Wrong data."); } } /* ---------------------------------------------------- * Metodas SetProdOnTaste() suformuoja sarasa produktu * kuriu skonis yra didesnis arba 2 dydziais mazesnis * negu pasirinktas skaiciavimams * ----------------------------------------------------*/ private void SetProdOnTaste() { // productCount >0 (pries kreipiantis buvo patikrinta // atrenka produktus pagal skonio faktorius int j = 0; int sv = cmbbxIAddTaste.getSelectedIndex(); float sko = 0; activProdCnt = 0; for (int i = 0; i < productCount; i++) { sko = produktai[i].getTaste(); // gauk skoni // ivedam tik tuos jei skonis mus tenkina, if (sko >= sv) { j++; produktai1[j - 1] = produktai[i]; } } if (j != 0) { activProdCnt = j; // produktu skaicius kurie itraukiami i // skaiciavimus prodActiv = new Product[activProdCnt+1]; for (int i = 1; i <= activProdCnt; i++) { prodActiv[i] = produktai1[i-1]; } } } /* * ------------------------------------ * metodas btnNext_actionPerformed * Atlieka veiksma "Toliau" 2. is nustatymo langu kreipiasi i optimizacija * ir atlieka veiksmus bei gauna rezultatus * ------------------------------------ */ private void btnNext2_actionPerformed(ActionEvent event) { int opt_func_salyga; if (productCount == 0) { lblStatus.setText("No data"); tbdpnlBendras.setSelectedIndex(0); } else { produktai1 = new Product[productCount]; SetProdOnTaste(); opt_func_salyga = 0; if (activProdCnt == 0) { tbdpnlBendras.setSelectedIndex(0); } else { double weight = Converter.stringToDouble(txtfldWeight.getText()); double weight2; // skirtas tam, kad esant pasirinktam vaikui, koeficientas prie elementu, kurie nustato pagal svori, butu vienas. // duomenyse pageidavimai vaikui nenurodyti pagal svori, todel visiems vienodi if (jrbtVaikas.isSelected()) weight2 = 1; else weight2 = weight; // ---------------------------------- solve lpSolve = new solve(); lprec lpRec = new lprec(0, activProdCnt); // debug = 1/0 - ijungti/isjungti debug rezima lpRec.debug = Constants.Debug; // suformuojam sarasa for (int i = 1; i <= activProdCnt; i++) if (prodActiv[i].getDish() == 1) // jei patiekalas { lpSolve.set_int(lpRec, i, (short) 1); lpSolve.set_upbo(lpRec, i, Constants.maxPatiekaluKiekis); // kiek patiekalu (virsutine riba) } else { // jei ne patiekalas lpSolve.set_int(lpRec, i, (short) 0); //lpSolve.set_lowbo(lpRec,i, Constants.minGramuKiekis); lpSolve.set_upbo(lpRec, i, Constants.maxGramuKiekis); // kiek gramu (virsutine riba) } // apribojimu suformavimas // BALTYMAI,RIEBALAI, ANGLIAVANDENIAI,KALORIJOS,A,E,C,B1,B2,B3,B6,B12, // PP,CA,NA,S,FTOR(P),J(JODAS),VAIZDAS,KAINA. double data[] = new double[activProdCnt + 1]; double Cal = Converter.stringToDouble(ReikiaKal.getText()); double Fat = Converter.stringToDouble(ReikiaRieb.getText()); double Pro = Converter.stringToDouble(ReikiaBalt.getText()); double Car = Converter.stringToDouble(ReikiaAngl.getText()); double VitA = Converter.stringToDouble(ReikiaVitA.getText()); double VitB1 = Converter.stringToDouble(ReikiaVitB1.getText()); double VitB2 = Converter.stringToDouble(ReikiaVitB2.getText()); double VitB3 = Converter.stringToDouble(ReikiaVitB3.getText()); double VitB6 = Converter.stringToDouble(ReikiaVitB6.getText()); double VitB12 = Converter.stringToDouble(ReikiaVitB12.getText()); double VitC = Converter.stringToDouble(ReikiaVitC.getText()); double VitE = Converter.stringToDouble(ReikiaVitE.getText()); double VitPP = Converter.stringToDouble(ReikiaVitPP.getText()); double MinCa = Converter.stringToDouble(ReikiaKalc.getText()); double MinNa = Converter.stringToDouble(ReikiaNatr.getText()); double Fosf = Converter.stringToDouble(ReikiaFosf.getText()); double Siera = Converter.stringToDouble(ReikiaSer.getText()); double J = Converter.stringToDouble(ReikiaJ.getText()); double BeautyFactor = Converter.stringToDouble(cmbbxImportance.getText()); fMaistoIvairumas = Converter.stringToDouble(jIvairove.getText()); // beautyfactor inervalas nuo (0 iki+begalybes) // (0;1) - suvartojama maziau negu reikia - tuo atzvilgiu dieta neoptimali todel grozio faktorius nuo 1 // (1) -tiek kiek reikia // (1;+begalybe) - daugiau nei reikia double Paklaida = Converter.stringToDouble(jPaklaida.getText()); double rhs; // Optimizuojama pagal kaina, ribojimus nusako kalorijos (ju skaiciu galima keisti pagal "grozio" faktoriu), baltymai,riebalai ir kt. // skonio faktorius veikia kaina 10%, juo didesnis skonis tuo daugiau norima uz preke moketi, t.y. kaina mazeja didejant skoniui // Tikslo funkcija: minx->sum((ci-si+g*ai1-d*di)xi-g*b1. // g*b1 galima praleisti, nes jis vienodas visiems patiekalams // ci - produkto kg/vnt kaina, // si - skonio "kaina", // g - grozio faktorius, // di - maisto ivairoves (diversity) faktorius: // di = 1 - jei i-tasisi produktas yra patiekalas, kitu atveju di = 0 // b1 - kaloriju norma for (int i = 1; i <= activProdCnt; i++) { // 90(84) formule vienam produktui data[i] = ((prodActiv[i].price - prodActiv[i].price * prodActiv[i].Taste * Constants.tasteIndex) + BeautyFactor * prodActiv[i].calories - fMaistoIvairumas.doubleValue() * prodActiv[i].getDish()); if (data[i] < -10000) { // labai mazas skaicius, rezultate gausime nesamone opt_func_salyga = 1; // skaiciavimu neatliksime } } if (opt_func_salyga == 1) { lblStatus.setForeground(new java.awt.Color(204, 102, 0)); lblStatus.setText("Dieta neskaiciuojama - mirsit nuo persivalgymo"); } else { lpSolve.set_obj_fn(lpRec, data); lpSolve.set_minim(lpRec); /* Calories */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getCalories(); //apatine riba rhs = (Cal - Cal * Paklaida) * weight2 * Constants.lowerTolCalories; lpSolve.add_constraint(lpRec, data, GE, rhs); //virsutine riba rhs = (Cal + Cal * Paklaida) * weight2 * Constants.upperTolCalories; lpSolve.add_constraint(lpRec, data, LE, rhs); /* Proteins */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getProteins(); rhs = (Pro - Pro * Paklaida) * weight2 * Constants.lowerTolProteins; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Pro + Pro * Paklaida) * weight2 * Constants.upperTolProteins; lpSolve.add_constraint(lpRec, data, LE, rhs); /* Fats */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getFats(); rhs = (Fat - Fat * Paklaida) * weight2 * Constants.lowerTolFats; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Fat + Fat * Paklaida) * weight2 * Constants.upperTolFats; lpSolve.add_constraint(lpRec, data, LE, rhs); /* Carbohydrates */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getCarbohydrates(); rhs = (Car - Car * Paklaida) * weight2 * Constants.lowerTolCarbohydrates; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Car + Car * Paklaida) * weight2 * Constants.upperTolCarbohydrates; lpSolve.add_constraint(lpRec, data, LE, rhs); /* mikroelementai ir vitaminai pateikiami fiksuota dienos norma zmogui */ /* vit A */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getVitA(); rhs = (VitA - VitA * Paklaida) * Constants.lowerTolVitA; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitA + VitA * Paklaida) * Constants.upperTolVitA; /* vit B1 */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].vitB1; rhs = (VitB1 - VitB1 * Paklaida) * Constants.lowerTolVitB1; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitB1 + VitB1 * Paklaida) * Constants.upperTolVitB1; lpSolve.add_constraint(lpRec, data, LE, rhs); /* vit B2 */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].vitB2; rhs = (VitB2 - VitB2 * Paklaida) * Constants.lowerTolVitB2; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitB2 + VitB2 * Paklaida) * Constants.upperTolVitB2; lpSolve.add_constraint(lpRec, data, LE, rhs); /* vit B3 */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].vitB3; rhs = (VitB3 - VitB3 * Paklaida) * Constants.lowerTolVitB3; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitB3 + VitB3 * Paklaida) * Constants.upperTolVitB3; lpSolve.add_constraint(lpRec, data, LE, rhs); /* vit B6 */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].vitB6; rhs = (VitB6 - VitB6 * Paklaida) * Constants.lowerTolVitB6; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitB6 + VitB6 * Paklaida) * Constants.upperTolVitB6; lpSolve.add_constraint(lpRec, data, LE, rhs); /* vit B12 */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].vitB12; rhs = (VitB12 - VitB12 * Paklaida) * Constants.lowerTolVitB12; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitB12 + VitB12 * Paklaida) * Constants.upperTolVitB12; lpSolve.add_constraint(lpRec, data, LE, rhs); /* vit C */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getVitC(); rhs = (VitC - VitC * Paklaida) * Constants.lowerTolVitC; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitC + VitC * Paklaida) * Constants.upperTolVitC; lpSolve.add_constraint(lpRec, data, LE, rhs); /* vit E */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].vitE; rhs = (VitE - VitE * Paklaida) * Constants.lowerTolVitE; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitE + VitE * Paklaida) * Constants.upperTolVitE; lpSolve.add_constraint(lpRec, data, LE, rhs); /* vit PP */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].vitPP; rhs = (VitPP - VitPP * Paklaida) * Constants.lowerTolVitPP; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (VitPP + VitPP * Paklaida) * Constants.upperTolVitPP; lpSolve.add_constraint(lpRec, data, LE, rhs); /* mikrel Ca */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getMinCa(); rhs = (MinCa - MinCa * Paklaida) * Constants.lowerTolMikrelCa; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (MinCa + MinCa * Paklaida) * Constants.upperTolMikrelCa; lpSolve.add_constraint(lpRec, data, LE, rhs); /* mikrel Na */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].getMinNa(); rhs = (MinNa - MinNa * Paklaida) * Constants.lowerTolMikrelNa; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (MinNa + MinNa * Paklaida) * Constants.upperTolMikrelNa; lpSolve.add_constraint(lpRec, data, LE, rhs); /* mikrel S */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].minS; rhs = (Siera - Siera * Paklaida) * Constants.lowerTolMikrelS; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Siera + Siera * Paklaida) * Constants.upperTolMikrelS; lpSolve.add_constraint(lpRec, data, LE, rhs); /* mikrel P */ for (int i = 1; i <= activProdCnt; i++) data[i] = prodActiv[i].minP; rhs = (Fosf - Fosf * Paklaida) * Constants.lowerTolMikrelP; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Fosf + Fosf * Paklaida) * Constants.upperTolMikrelP; lpSolve.add_constraint(lpRec, data, LE, rhs); int rez = lpSolve.solve(lpRec); if (rez == 0) { lblStatus.setText("Optimali dieta rasta"); double nn = 0; int sk = 0; for (int i = 1; i <= lpSolve.get_lpcolumns(lpRec); i++) if (lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) != nn) sk++; String rezai[] = new String[sk]; double sumcal = 0.0D; double sumpro = 0.0D; double sumfat = 0.0D; double sumcar = 0.0D; int nr = 0; double sumak = 0.0D; double sumaks = 0.0D; double mase = 0; int ivairove = 0; VitC = VitA = MinCa = MinNa = VitE = VitB1 = VitB2 = VitB3 = VitB6 = VitB12 = VitPP = Fosf = Siera = J = 0.0; for (int i = 1; i <= lpSolve.get_lpcolumns(lpRec); i++){ int rows = lpSolve.get_lprows(lpRec); if (lpSolve.get_lpsolution(lpRec, rows + i) != nn) { rezai[nr] = prodActiv[i].getName() + "," + Double.toString(lpSolve.get_lpsolution(lpRec, rows + i)); sumcal += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getCalories(); sumpro += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getProteins(); sumfat += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getFats(); sumcar += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getCarbohydrates(); sumak += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getPrice(); sumaks += lpSolve.get_lpsolution(lpRec, rows + i) * ((double) prodActiv[i].getPrice() - (double) prodActiv[i].getPrice() * (double) prodActiv[i].getTaste() * Constants.tasteIndex); VitC += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitC(); VitA += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitA(); MinCa += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getMinCa(); MinNa += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getMinNa(); VitE += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitE(); VitB1 += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitB1(); VitB2 += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitB2(); VitB3 += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitB3(); VitB6 += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitB6(); VitB12 += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitB12(); VitPP += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getVitPP(); Fosf += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getMinP(); Siera += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getMinS(); J += lpSolve.get_lpsolution(lpRec, rows + i) * (double) prodActiv[i].getMinJ(); ivairove += lpSolve.get_lpsolution(lpRec, rows + i) * prodActiv[i].getDish(); nr++; mase += lpSolve.get_lpsolution(lpRec, rows + i); } } tblmdlRezultatai.setItems(rezai); DecimalFormat nf = new DecimalFormat(Constants.doublePattern); lblCaloriesTotal.setText(nf.format(sumcal)); lblProteinsTotal.setText(nf.format(sumpro)); lblFatsTotal.setText(nf.format(sumfat)); lblCarbohydratesTotal.setText(nf.format(sumcar)); lblPriceTotal.setText(nf.format(sumak)); lblPriceTotalS.setText(nf.format(sumaks)); lblVitATotal.setText(nf.format(VitA)); lblVitB1Total.setText(nf.format(VitB1)); lblVitB2Total.setText(nf.format(VitB2)); lblVitB3Total.setText(nf.format(VitB3)); lblVitB6Total.setText(nf.format(VitB6)); lblVitB12Total.setText(nf.format(VitB12)); lblVitCTotal.setText(nf.format(VitC)); lblVitETotal.setText(nf.format(VitE)); lblVitPPTotal.setText(nf.format(VitPP)); lblMinCaTotal.setText(nf.format(MinCa)); lblMinNaTotal.setText(nf.format(MinNa)); lblMinSTotal.setText(nf.format(Siera)); lblMinPTotal.setText(nf.format(Fosf)); lblMinJTotal.setText(nf.format(J)); jLabelIvairovesSprendimas2.setText(String.valueOf(ivairove)); } else { String tuscias[] = new String[0]; tblmdlRezultatai.setItems(tuscias); lblCaloriesTotal.setText(""); lblProteinsTotal.setText(""); lblFatsTotal.setText(""); lblCarbohydratesTotal.setText(""); lblPriceTotal.setText(""); lblPriceTotalS.setText(""); lblVitATotal.setText(""); lblVitB1Total.setText(""); lblVitB2Total.setText(""); lblVitCTotal.setText(""); lblVitB3Total.setText(""); lblVitETotal.setText(""); lblVitB6Total.setText(""); lblVitPPTotal.setText(""); lblVitB12Total.setText(""); lblMinCaTotal.setText(""); lblMinNaTotal.setText(""); lblMinSTotal.setText(""); lblMinPTotal.setText(""); lblMinJTotal.setText(""); jLabelIvairovesSprendimas2.setText("0"); lblStatus.setText("Neimanoma patenkinti sanitariniu normu !"); } pnlRezultatai.setEnabled(true); tbdpnlBendras.setSelectedIndex(2); } } } } /* * ------------------------------------ metodas btnOK_actionPerformed Priskiria duomenu failo nuoroda(handle) ------------------------------------ */ void btnOK_actionPerformed(ActionEvent event) { failas = txtfldFailas.getText(); D.dispose(); } /* * ------------------------------------ metodas btnUpdate_actionPerformed Atnaujina egzistuojanti patiekala Istrina is lenteles ir iraso i gala su pakeistais duomenimis * ------------------------------------ */ void btnUpdate_actionPerformed(ActionEvent event) { String tmpPatiekalas; if(chkbxDish.isSelected()) tmpPatiekalas = "1"; else tmpPatiekalas="0"; int nr = tblLentele.getSelectedRow(); tblmdlLentele.removeRow(nr); /******************************************************************************************************************************************************************************************************* * CIA(ZEMIAU) REIKIA SUSUMUOTI VISUS ELEMENTUS IS TEXBOKSU TIKSLIA TVARKA !!! EILE(TVARKA) TOKIA : PRODUKAS,BALTYMAI(PROTEISNS),RIEBALAI(FATS), ANGLIAVANDENIAI(CARBOHYDRAUTES), * KALORIJOS,A,E,C,B1,B2,B3,B6,B12,PP,CA,NA,S,FTOR(P), J(JODAS),VAIZDAS, PATIEKALAS,KAINA. Patiekas pridedamas taip : ... + "," + tmpPatiekalas + ","+... ******************************************************************************************************************************************************************************************************/ String temp = txtfldName.getText() + "," + txtfldProteins.getText() + "," + txtfldFats.getText() + "," + txtfldCarbohydrates.getText() + "," + txtfldCalories.getText() + "," + txtfldVitaminC.getText() + "," + txtfldVitaminA.getText() + "," + txtfldMineralCa.getText() + "," + txtfldMineralNa.getText() + "," + txtfldVitaB2.getText() + "," + txtfldVitaB3.getText() + "," + txtfldVitaB6.getText() + "," + txtfldVitaB12.getText() + "," + txtfldVitaPP.getText() + "," + txtfldMCA.getText() + "," + txtfldMNa.getText() + "," + txtfldMS.getText() + "," + txtfldMP.getText() + "," + txtfldMJ.getText() + "," + cmbbxTaste.getSelectedItem().toString() + "," + tmpPatiekalas.toString() + "," + txtfldPrice.getText(); tblmdlLentele.addRow(temp); Clear(); } /* * metodas pageidavimui ikrovimui ir tekstinio lauko * lauke duomenys turi buti tokia tvarka: *1 Energija (kcal), 2 Baltymai (g), 3 Riebalai (g), 4 Angliavandeniai (g), 5 Ca (mg), 6 P (mg), Mg (mg), <<-- Sitas nenaudojamas Fe (mg), <<-- Sitas nenaudojamas Zn (mg), <<-- Sitas nenaudojamas 7 Na (mg), K (mg), <<-- Sitas nenaudojamas 8 J (mg), 9 C (mg), 10 A (mkg ret. ekv.), 11 E (mg, tok. ekv.), D (mkg), <<-- Sitas nenaudojamas 12 B1 (mg), 13 B2 (mg), B3 <<-- sito truksta duomenyse 14 B6 (mg), 15 PP(mg niac. ekv.), Folio r. (mkg), <<-- sitas nenaudojamas 16 B12 (mkg) S <<-- Sito truksta duomenyse */ void jbtnTekstas_actionPerformed(ActionEvent event) { StringTokenizer strtkPageidavimai, strtkPapildomi; strtkPageidavimai = new StringTokenizer(jReikalavimuTekstas.getText().trim(), " "); Double suma; if (strtkPageidavimai.countTokens() != 16) { JOptionPane.showMessageDialog(this, "Turi būti 16 elementai!"); } else { dienosReikalavimai = new String [16]; if( chkbxPapildoma.isSelected() ) { // jei yra papildomu pageidavimu strtkPapildomi = new StringTokenizer(tfldPapildomi.getText().trim() ," "); for(int i=0; i<16; i++) { suma = Double.valueOf(strtkPageidavimai.nextToken());//.doubleValue() + Double.valueOf(strtkPapildomi.nextToken()).doubleValue(); if (suma.doubleValue() < 0) suma = Double.valueOf(0); suma = new Double(Math.round(suma.doubleValue()*100.0)/100.0); dienosReikalavimai[i] = suma.toString(); } } else { // jei nera papildomu pageidavimu for(int i=0; i<16; i++) { dienosReikalavimai[i] = strtkPageidavimai.nextToken(); } } atnaujintiPageidavimus(); } } /* metodas is masyvo String dienosReikalavimai[22] * suveda i tektsinius laukus pageidavimus */ void atnaujintiPageidavimus() { //================================ ReikiaKal.setText(dienosReikalavimai[0]); ReikiaBalt.setText(dienosReikalavimai[1]); ReikiaRieb.setText(dienosReikalavimai[2]); ReikiaAngl.setText(dienosReikalavimai[3]); //================================ ReikiaKalc.setText(dienosReikalavimai[4]); ReikiaFosf.setText(dienosReikalavimai[5]); ReikiaNatr.setText(dienosReikalavimai[6]); ReikiaJ.setText(dienosReikalavimai[7]); //================================ ReikiaVitC.setText(dienosReikalavimai[8]); ReikiaVitA.setText(dienosReikalavimai[9]); ReikiaVitE.setText(dienosReikalavimai[10]); ReikiaVitB1.setText(dienosReikalavimai[11]); ReikiaVitB2.setText(dienosReikalavimai[12]); ReikiaVitB6.setText(dienosReikalavimai[13]); ReikiaVitPP.setText(dienosReikalavimai[14]); ReikiaVitB12.setText(dienosReikalavimai[15]); //================================= //ReikiaVitB3.setText("1.8"); //ReikiaSer.setText("1000"); } /* ------------------------------------ * metodas cmbbxOptimization_itemStateChanged * Neaiskus metodas. Tikriausiai buvo * anksciau naudojamas identifikuoti * pasikeitusiems duomenims bet dabar * neturi prasmes(?) * ------------------------------------ */ void cmbbxOptimization_itemStateChanged(ItemEvent itemevent) { } /* Metodas ikrauna pageidavimu eilute pagal suaugosiusiu poreikius ijungia svorio lauka */ void rbSuaugusieji_itemStateChanged(ItemEvent itemevent) { txtfldWeight.setEnabled(true); cmbbxAktyvumas.setEnabled(true); cmbbxAmzius.setEnabled(true); cmbbxVaikoAmzius.setEnabled(false); int kuris = kuriDuomenuEilute(); jReikalavimuTekstas.setText(pageidavimaiStandartiniai[kuris]); if (jrbtVyras.isSelected()) { jcbPapildomosSalygos_V.setEnabled(true); jcbPapildomosSalygos_M.setEnabled(false); pasirinktasPapildomas(); } else { jcbPapildomosSalygos_M.setEnabled(true); jcbPapildomosSalygos_V.setEnabled(false); pasirinktasPapildomas(); } } /* Metodas ikrauna pageidavimu eilute pagal vaiku poreikius isjungia svorio lauka */ void rbVaikai_itemStateChanged(ItemEvent itemevent) { txtfldWeight.setEnabled(false); cmbbxAktyvumas.setEnabled(false); cmbbxAmzius.setEnabled(false); cmbbxVaikoAmzius.setEnabled(true); int kuris = kuriDuomenuEilute(); jReikalavimuTekstas.setText(pageidavimaiStandartiniai[kuris]); jcbPapildomosSalygos_M.setEnabled(false); jcbPapildomosSalygos_V.setEnabled(false); } void pasirinktasPapildomas() { if (chkbxPapildoma.isSelected()) { if(jrbtVyras.isSelected()) { tfldPapildomi.setText(papildomiReikalavimai_V[jcbPapildomosSalygos_V.getSelectedIndex()]); } else { tfldPapildomi.setText(papildomiReikalavimai_M[jcbPapildomosSalygos_M.getSelectedIndex()]); } } else tfldPapildomi.setText(""); } /* * Metodas nustato amžiaus, lyties ir aktyvumo pasirinkimus, kurią duomenų eilutę įkrauti į programą. */ int kuriDuomenuEilute() { int amzius, svoris, aktyvumas, lytis=0, svorioRiba=80; boolean vaikas, vyras, moteris; double weight = Double.valueOf(txtfldWeight.getText()).doubleValue(); // nuistato kuris radio mygtukas pazymetas if (jrbtVaikas.isSelected()) { vaikas = true; vyras = false; moteris = false; } else { vaikas = false; if (jrbtVyras.isSelected()) { vyras = true; moteris = false; lytis = 0; svorioRiba = 80; } else { vyras = false; moteris = true; lytis = 1; svorioRiba = 65; } } //jei vaikas if (vaikas == true) { amzius = cmbbxVaikoAmzius.getSelectedIndex(); return 48 + amzius; } else { amzius = cmbbxAmzius.getSelectedIndex(); if (weight < svorioRiba) svoris = 0; else svoris = 1; aktyvumas = cmbbxAktyvumas.getSelectedIndex(); return aktyvumas*12 + lytis*6 + amzius*2 + svoris; } } /* ------------------------------------ * metodas formProduct * Suformuoja produkto objekta su visais * jam priklausanciais duomenimis * Perskaiciuoja duomenis vienam produkto * kilogramui jei tai ne patiekalas * ------------------------------------ */ void formProduct(StringTableModel model) { duomenuKlaida = false; String temp = ""; productCount = model.getRowCount(); produktai = new Product[productCount]; int j;float dg; for(int i = 0; i < productCount; i++) { /****************************************************************************** * EILE(TVARKA) TOKIA : * PRODUKAS,BALTYMAI,RIEBALAI, ANGLIAVANDENIAI,KALORIJOS,A,E,C,B1,B2,B3,B6,B12, * PP,CA,NA,S,FTOR(P), J(JODAS),VAIZDAS,PATIEKALAS,KAINA. *****************************************************************************/ produktai[i] = new Product(); produktai[i].setName(model.getElementAt(i, 0).toString()); j=i+1; try { temp = model.getElementAt(i, 20).toString(); Integer vv = Integer.valueOf(temp); if(vv.intValue() == 0 || vv.intValue() == 1) { produktai[i].setDish(vv.intValue()); } else { duomenuKlaida = true; break; } if (produktai[i].getDish()==0){ dg=10; }else { dg=1; } /*suvedame produktus perskaiciuodami ju dedamasias kilograme JEI TAI NE PATIEKALAS*/ temp = model.getElementAt(i, 1).toString(); Float v = Float.valueOf(temp); produktai[i].proteins=dg*v.floatValue(); temp = model.getElementAt(i, 2).toString(); v = Float.valueOf(temp); produktai[i].fats=dg*v.floatValue(); temp = model.getElementAt(i, 3).toString(); v = Float.valueOf(temp); produktai[i].carbohydrates=dg*v.floatValue(); temp = model.getElementAt(i, 4).toString(); v = Float.valueOf(temp); produktai[i].calories=dg*v.floatValue(); temp = model.getElementAt(i, 5).toString(); v = Float.valueOf(temp); produktai[i].vitA=dg*v.floatValue(); temp = model.getElementAt(i, 6).toString(); v = Float.valueOf(temp); produktai[i].vitE=dg*v.floatValue(); temp = model.getElementAt(i, 7).toString(); v = Float.valueOf(temp); produktai[i].vitC=dg*v.floatValue(); temp = model.getElementAt(i, 8).toString(); v = Float.valueOf(temp); produktai[i].vitB1=dg*v.floatValue(); temp = model.getElementAt(i, 9).toString(); v = Float.valueOf(temp); produktai[i].vitB2=dg*v.floatValue(); temp = model.getElementAt(i, 10).toString(); v = Float.valueOf(temp); produktai[i].vitB3=dg*v.floatValue(); temp = model.getElementAt(i, 11).toString(); v = Float.valueOf(temp); produktai[i].vitB6=dg*v.floatValue(); temp = model.getElementAt(i, 12).toString(); v = Float.valueOf(temp); produktai[i].vitB12=dg*v.floatValue(); temp = model.getElementAt(i, 13).toString(); v = Float.valueOf(temp); produktai[i].vitPP=dg*v.floatValue(); temp = model.getElementAt(i, 14).toString(); v = Float.valueOf(temp); produktai[i].minCa=dg*v.floatValue(); temp = model.getElementAt(i, 15).toString(); v = Float.valueOf(temp); produktai[i].minNa=dg*v.floatValue();/*Marijus : Mg->Na*/ temp = model.getElementAt(i, 16).toString(); v = Float.valueOf(temp); produktai[i].minS=dg*v.floatValue(); temp = model.getElementAt(i, 17).toString(); v = Float.valueOf(temp); produktai[i].minP=dg*v.floatValue();/*Marijus : F->P*/ temp = model.getElementAt(i, 18).toString(); v = Float.valueOf(temp); produktai[i].minJ=dg*v.floatValue(); temp = model.getElementAt(i, 21).toString(); v = Float.valueOf(temp); produktai[i].price=dg*v.floatValue(); temp = model.getElementAt(i, 19).toString(); v = Float.valueOf(temp); if(v.floatValue() >= 0.0F && v.floatValue() < 11F) { produktai[i].setTaste(v.floatValue()); continue; } else { duomenuKlaida = true; break; } } catch(NumberFormatException _ex) { lblStatus.setText("Wrong data file.Error: " +_ex.toString()+"Eror data line: "+j); duomenuKlaida = true; } break; } } /* ------------------------------------ * metodas init * Inicijuoja apleta, paruosia pradinius * laukus ir duomenis, "nupiesia" appleto * elementus * ------------------------------------ */ public void init() { productCount = 0; txtfldVitaB2 = new JTextField(); txtfldVitaB3 = new JTextField(); txtfldVitaB6 = new JTextField(); txtfldVitaB12 = new JTextField(); txtfldVitaPP = new JTextField(); txtfldMCA = new JTextField(); txtfldMNa = new JTextField(); txtfldMS = new JTextField(); txtfldMP = new JTextField(); txtfldMJ = new JTextField(); JLabelB22 = new JLabel(); JLabelB33 = new JLabel(); JLabelB66=new JLabel(); //Natali JLabelB122=new JLabel();//Natali JLabelPP=new JLabel();//Natali JLabelCa2=new JLabel();//Natali JLabelNa2=new JLabel(); //Natali JLabelS2=new JLabel();//Natali JLabelP2=new JLabel();//Natali JLabelJ2=new JLabel();//Natali duomenuKlaida = false; failas = "duom.txt"; D = new JDialog(); lblFailas = new JLabel("Iveskite duomenu failo varda"); txtfldFailas = new JTextField("duom.txt"); btnOK = new JButton("OK"); tbdpnlBendras = new JTabbedPane(); pnlDuomenys = new JPanel(); scrlpnLentele = new JScrollPane(); tblLentele = new JTable(); lblLentelesPav = new JLabel(); lblRedagavimas = new JLabel(); lblName = new JLabel(); txtfldName = new JTextField(); lblPrice = new JLabel(); txtfldPrice = new JTextField(); lblCalories = new JLabel(); txtfldCalories = new JTextField(); lblProteins = new JLabel(); txtfldProteins = new JTextField(); lblFats = new JLabel(); txtfldFats = new JTextField(); lblCarbohydrates = new JLabel(); txtfldCarbohydrates = new JTextField(); lblTaste = new JLabel(); cmbbxTaste = new JComboBox(); btnLoad = new JButton(); btnNew = new JButton(); btnUpdate = new JButton(); btnNext1 = new JButton(); btnDelete = new JButton(); chkbxDish = new JCheckBox(); lblDish = new JLabel(); JLabel5 = new JLabel(); JLabel6 = new JLabel(); JLabel7 = new JLabel(); JLabel8 = new JLabel(); txtfldVitaminC = new JTextField(); txtfldVitaminA = new JTextField(); txtfldMineralCa = new JTextField(); txtfldMineralNa = new JTextField(); pnlPageidavimai = new JPanel(); txtfldWeight = new JTextField(); lblWeight = new JLabel(); btnNext2 = new JButton(); cmbbxOptimization = new JComboBox(); lblOptimization = new JLabel(); //NEED // 2 panel - kur ko reikia initComponents(); //NEED END lblImportance = new JLabel(); cmbbxImportance = new JTextField();// JComboBox(); JLabel9 = new JLabel(); JLabel10 = new JLabel(); JLabel11 = new JLabel(); JLabel12 = new JLabel(); JLabel13 = new JLabel(); JLabel14 = new JLabel(); JLabel15 = new JLabel(); pnlRezultatai = new JPanel(); JScrollPane1 = new JScrollPane(); JTable1 = new JTable(); JLabel1 = new JLabel(); JLabel2 = new JLabel(); JLabel3 = new JLabel(); JLabel4 = new JLabel(); lblCaloriesTotal = new JLabel(); lblProteinsTotal = new JLabel(); lblFatsTotal = new JLabel(); lblCarbohydratesTotal = new JLabel(); tblmdlLentele = new StringTableModel(); cmbbxmdlTaste = new StringComboBoxModel(); cmbbxmdlTaste = new StringComboBoxModel(); cmbbxmdlProteinsW = new StringComboBoxModel(); cmbbxmdlfatsW = new StringComboBoxModel(); cmbbxmdlCarbohydratesW = new StringComboBoxModel(); cmbbxmdlCaloriesW = new StringComboBoxModel(); lineBorder1 = new LineBorder(); tblmdlRezultatai = new StringTableModel(); cmbbxmdlOptimize = new StringComboBoxModel(); cmbbxmdlBias = new StringComboBoxModel(); lblStatus = new JLabel(); cmbbxmdlITaste = new StringComboBoxModel(); cmbbxmdlITaste = new StringComboBoxModel(); cmbbxmdlIPrice = new StringComboBoxModel(); cmbbxmdlImportance = new StringComboBoxModel(); cmbbxIAddTaste = new JComboBox(); JLabelAddOnTaste = new JLabel(); //--------------------------------------------- Context.setApplet(this); getRootPane().putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE); getContentPane().setLayout(null); setSize(780, 650); getContentPane().add(tbdpnlBendras); tbdpnlBendras.setBounds(12, 12, 760, 560); pnlDuomenys.setLayout(null); tbdpnlBendras.add(pnlDuomenys); pnlDuomenys.setBounds(2, 27, 727, 474); pnlDuomenys.setVisible(false); scrlpnLentele.setVerticalScrollBarPolicy(22); scrlpnLentele.setHorizontalScrollBarPolicy(32); scrlpnLentele.setOpaque(true); pnlDuomenys.add(scrlpnLentele); scrlpnLentele.setBounds(10, 33, 708, 168); tblLentele.setModel(tblmdlLentele); scrlpnLentele.getViewport().add(tblLentele); tblLentele.setBounds(0, 0, 690, 0); lblLentelesPav.setText("Produktai"); pnlDuomenys.add(lblLentelesPav); lblLentelesPav.setBounds(10, 9, 200, 12); lblRedagavimas.setText("Duomenu apie produkta ivedimas"); pnlDuomenys.add(lblRedagavimas); lblRedagavimas.setBounds(20, 213, 300, 24); lblName.setText("Pavadinimas"); pnlDuomenys.add(lblName); lblName.setForeground(new Color(102, 102, 153)); lblName.setBounds(240, 249, 100, 24); pnlDuomenys.add(txtfldName); txtfldName.setBounds(320, 249, 130, 24); lblPrice.setText("Kaina"); pnlDuomenys.add(lblPrice); lblPrice.setBounds(22, 280, 100, 24); pnlDuomenys.add(txtfldPrice); txtfldPrice.setBounds(130, 280, 50, 24); lblCalories.setText("Kalorijos"); pnlDuomenys.add(lblCalories); lblCalories.setBounds(22, 370, 96, 24); pnlDuomenys.add(txtfldCalories); txtfldCalories.setBounds(130, 370, 50, 24); lblProteins.setText("Baltymai"); pnlDuomenys.add(lblProteins); lblProteins.setBounds(22, 310, 96, 24); pnlDuomenys.add(txtfldProteins); txtfldProteins.setBounds(130, 310, 50, 24); lblFats.setText("Riebalai"); pnlDuomenys.add(lblFats); lblFats.setBounds(22, 340, 96, 24); pnlDuomenys.add(txtfldFats); txtfldFats.setBounds(130, 340, 50, 24); lblCarbohydrates.setText("Angliavandeniai"); pnlDuomenys.add(lblCarbohydrates); lblCarbohydrates.setBounds(22, 400, 96, 24); pnlDuomenys.add(txtfldCarbohydrates); txtfldCarbohydrates.setBounds(130, 400, 50, 24); lblTaste.setText("Skonis *"); pnlDuomenys.add(lblTaste); lblTaste.setBounds(530, 400, 110, 24); cmbbxTaste.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "0","1", "2", "3", "4", "5", "6", "7", "8", "9", "10" })); pnlDuomenys.add(cmbbxTaste); cmbbxTaste.setBounds(620, 400, 50, 24); btnLoad.setText("Duomenu ivedimas is failo"); btnLoad.setActionCommand("Atidaryti faila"); pnlDuomenys.add(btnLoad); btnLoad.setBounds(10, 500, 200, 24); btnNew.setText("Naujas produktas"); btnNew.setActionCommand("Naujas produktas"); pnlDuomenys.add(btnNew); btnNew.setBounds(215, 500, 150, 24); btnUpdate.setText("Atnaujinti/Irasyti"); btnUpdate.setActionCommand("Atnaujinti produkta"); pnlDuomenys.add(btnUpdate); btnUpdate.setBounds(370, 500, 150, 24); btnNext1.setText("Toliau >>"); btnNext1.setActionCommand("Toliau >>"); pnlDuomenys.add(btnNext1); btnNext1.setBounds(664, 500, 85, 23); btnDelete.setText("Istrinti produkta"); btnDelete.setActionCommand("Istrinti produkta"); pnlDuomenys.add(btnDelete); btnDelete.setBounds(527, 500, 132, 24); pnlDuomenys.add(chkbxDish); chkbxDish.setForeground(new Color(102, 102, 153)); chkbxDish.setBounds(340, 450, 72, 19); lblDish.setText("Patiekalas ?"); pnlDuomenys.add(lblDish); lblDish.setBounds(240, 450, 90, 19); JLabel5.setText("Vitaminas A"); pnlDuomenys.add(JLabel5); JLabel5.setBounds(210, 280, 98, 26); JLabel6.setText("Vitaminas E"); pnlDuomenys.add(JLabel6); JLabel6.setBounds(210, 310, 100, 25); JLabel7.setText("Vitaminas C"); pnlDuomenys.add(JLabel7); JLabel7.setBounds(210, 340, 107, 26); JLabel8.setText("Vitaminas B1"); pnlDuomenys.add(JLabel8); JLabel8.setBounds(210, 370, 99, 27); pnlDuomenys.add(txtfldVitaminC); txtfldVitaminC.setBounds(300, 280, 50, 24); pnlDuomenys.add(txtfldVitaminA); txtfldVitaminA.setBounds(300, 310, 50, 24); pnlDuomenys.add(txtfldMineralCa); txtfldMineralCa.setBounds(300, 340, 50, 24); pnlDuomenys.add(txtfldMineralNa); txtfldMineralNa.setBounds(300, 370, 50, 24); JLabelB22.setText("Vitaminas B2"); pnlDuomenys.add(JLabelB22); JLabelB22.setBounds(210, 400, 98, 26); JLabelB33.setText("Vitaminas B3"); pnlDuomenys.add(JLabelB33); JLabelB33.setBounds(370, 280, 100, 25); JLabelB66.setText("Vitaminas B6"); pnlDuomenys.add(JLabelB66); JLabelB66.setBounds(370, 310, 107, 26); JLabelB122.setText("Vitaminas B12"); pnlDuomenys.add(JLabelB122); JLabelB122.setBounds(370, 340, 99, 27); pnlDuomenys.add(txtfldVitaB2); txtfldVitaB2.setBounds(300, 400, 50, 24); pnlDuomenys.add(txtfldVitaB3); txtfldVitaB3.setBounds(460, 280, 50, 24); pnlDuomenys.add(txtfldVitaB6); txtfldVitaB6.setBounds(460, 310, 50, 24); pnlDuomenys.add(txtfldVitaB12); txtfldVitaB12.setBounds(460, 340, 50, 24); JLabelPP.setText("Vitaminas PP"); pnlDuomenys.add(JLabelPP); JLabelPP.setBounds(370, 370, 98, 26); JLabelCa2.setText("Mikroel. Ca"); pnlDuomenys.add(JLabelCa2); JLabelCa2.setBounds(370, 400, 100, 25); JLabelNa2.setText("Mikroel. Na"); pnlDuomenys.add(JLabelNa2); JLabelNa2.setBounds(530, 280, 107, 26); JLabelS2.setText("Mikroel. S"); pnlDuomenys.add(JLabelS2); JLabelS2.setBounds(530, 310, 99, 27); pnlDuomenys.add(txtfldVitaPP); txtfldVitaPP.setBounds(460,370, 50, 24); pnlDuomenys.add(txtfldMCA); txtfldMCA.setBounds(460, 400, 50, 24); pnlDuomenys.add(txtfldMNa); txtfldMNa.setBounds(620, 280, 50, 24); pnlDuomenys.add(txtfldMS); txtfldMS.setBounds(620, 310, 50, 24); JLabelP2.setText("Mikroel. P"); pnlDuomenys.add(JLabelP2); JLabelP2.setBounds(530, 340, 98, 26); JLabelJ2.setText("Mikroel. J"); pnlDuomenys.add(JLabelJ2); JLabelJ2.setBounds(530, 370, 100, 25); pnlDuomenys.add(txtfldMP); txtfldMP.setBounds(620, 340, 50, 24); pnlDuomenys.add(txtfldMJ); txtfldMJ.setBounds(620, 370, 50, 24); pnlPageidavimai.setLayout(null); tbdpnlBendras.add(pnlPageidavimai); pnlPageidavimai.setEnabled(false); pnlPageidavimai.setBounds(2, 27, 727, 474); pnlPageidavimai.setVisible(false); txtfldWeight.setText("70"); pnlPageidavimai.add(txtfldWeight); txtfldWeight.setBounds(22, 171, 159, 24); lblWeight.setText("Zmogaus svoris, kg"); pnlPageidavimai.add(lblWeight); lblWeight.setBounds(22, 146, 140, 35); btnNext2.setText("Toliau >>"); btnNext2.setActionCommand("Toliau >>"); pnlPageidavimai.add(btnNext2); btnNext2.setBounds(634, 441, 90, 24); cmbbxOptimization.setModel(cmbbxmdlOptimize); cmbbxOptimization.setBounds(22, 69, 161, 24); lblOptimization.setText("Optimizacijos parametrai"); pnlPageidavimai.add(lblOptimization); lblOptimization.setBounds(10, 10, 150, 24); lblImportance.setText("Grozio Faktorius**"); pnlPageidavimai.add(lblImportance); lblImportance.setBounds(22, 199, 240, 24); JLabel9.setText("jusu nuoziura"); pnlPageidavimai.add(JLabel9); JLabel9.setBounds(22, 213, 162, 26); cmbbxImportance.setText("1");//new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" })); pnlPageidavimai.add(cmbbxImportance); cmbbxImportance.setBounds(22, 237, 159, 29); /************************************* * Produktai itraukliami tik pagal skoni * start marijus *****************************************/ JLabelAddOnTaste.setText("Itraukti pagal skoni nuo"); pnlPageidavimai.add(JLabelAddOnTaste); JLabelAddOnTaste.setBounds(22, 275, 162, 26); cmbbxIAddTaste.setModel(new DefaultComboBoxModel(new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" })); pnlPageidavimai.add(cmbbxIAddTaste); cmbbxIAddTaste.setBounds(22, 300, 159, 29); /*end*/ pnlRezultatai.setLayout(null); pnlRezultatai.setEnabled(false); tbdpnlBendras.add(pnlRezultatai); pnlRezultatai.setBounds(2, 27, 727, 474); pnlRezultatai.setVisible(false); JScrollPane1.setVerticalScrollBarPolicy(22); JScrollPane1.setHorizontalScrollBarPolicy(32); JScrollPane1.setOpaque(true); pnlRezultatai.add(JScrollPane1); JScrollPane1.setBounds(10, 57, 408, 168); JTable1.setModel(tblmdlRezultatai); JTable1.setAutoResizeMode(4); JScrollPane1.getViewport().add(JTable1); JTable1.setBounds(0, 0, 390, 0); JLabel1.setText("Kaloriju kiekis (kcal):"); pnlRezultatai.add(JLabel1); JLabel1.setBounds(15, 249, 150, 25); JLabel2.setText("Proteinu kiekis (g):"); pnlRezultatai.add(JLabel2); JLabel2.setBounds(15, 276, 150, 25); JLabel3.setText("Riebalu kiekis (g):"); pnlRezultatai.add(JLabel3); JLabel3.setBounds(15, 303, 150, 25); JLabel4.setText("Angliavandeniu kiekis (g):"); pnlRezultatai.add(JLabel4); JLabel4.setBounds(15, 330, 150, 25); lblCaloriesTotal.setText("0"); pnlRezultatai.add(lblCaloriesTotal); lblCaloriesTotal.setBounds(180, 249, 252, 24); lblProteinsTotal.setText("0"); pnlRezultatai.add(lblProteinsTotal); lblProteinsTotal.setBounds(180, 276, 252, 24); lblFatsTotal.setText("0"); pnlRezultatai.add(lblFatsTotal); lblFatsTotal.setBounds(180, 303, 252, 24); lblCarbohydratesTotal.setText("0"); pnlRezultatai.add(lblCarbohydratesTotal); lblCarbohydratesTotal.setBounds(180, 330, 252, 24); tbdpnlBendras.setSelectedComponent(pnlDuomenys); tbdpnlBendras.setSelectedIndex(0); tbdpnlBendras.setTitleAt(0, "Produktai"); tbdpnlBendras.setTitleAt(1, "Parametrai"); tbdpnlBendras.setTitleAt(2, "Optimali dieta"); tblmdlLentele.setColumnHeaders("Pavadinimas,Baltymai,Riebalai,Angliavandeniai,kCal,A,E,C,B1,B2,B3,B6,B12,PP,Ca,Na,S,P,J,Skonis,Patiekalas,Kaina"); tblmdlRezultatai.setColumnHeaders("Name, Amount"); lblStatus.setBorder(lineBorder1); getContentPane().add(lblStatus); lblStatus.setFont(new Font("Dialog", 3, 12)); lblStatus.setBounds(12, 560, 732, 60); D.setModal(true); D.setBounds(200, 200, 225, 170); D.setName("Data file name input"); D.getContentPane().setLayout(null); lblFailas.setBounds(10, 10, 200, 30); D.getContentPane().add(lblFailas); txtfldFailas.setBounds(10, 40, 200, 30); D.getContentPane().add(txtfldFailas); btnOK.setBounds(80, 80, 60, 30); D.getContentPane().add(btnOK); SymMouse aSymMouse = new SymMouse(); tblLentele.addMouseListener(aSymMouse); SymAction lSymAction = new SymAction(); btnLoad.addActionListener(lSymAction); SymItem lSymItem = new SymItem(); btnNext2.addActionListener(lSymAction); btnNext1.addActionListener(lSymAction); cmbbxOptimization.addItemListener(lSymItem); btnNew.addActionListener(lSymAction); btnUpdate.addActionListener(lSymAction); btnDelete.addActionListener(lSymAction); btnOK.addActionListener(lSymAction); // radioButton Vyras jrbtVyras = new JRadioButton("Vyras"); jrbtVyras.setActionCommand("vyras"); jrbtVyras.setBounds(10,35,70,16); pnlPageidavimai.add(jrbtVyras); jrbtVyras.addItemListener(lSymItem); // radioButton Moteris jrbtMoretis = new JRadioButton("Moteris"); jrbtVyras.setActionCommand("moteris"); jrbtMoretis.setBounds(10,55,70,16); pnlPageidavimai.add(jrbtMoretis); jrbtMoretis.addItemListener(lSymItem); // radioButton Vaikas jrbtVaikas = new JRadioButton("Vaikas"); jrbtVaikas.setActionCommand("vaikas"); jrbtVaikas.setBounds(10,75,70,16); pnlPageidavimai.add(jrbtVaikas); jrbtVaikas.addItemListener(lSymItem); // Radio grupe jrbtgrTipai = new ButtonGroup(); jrbtgrTipai.add(jrbtVyras); jrbtgrTipai.add(jrbtMoretis); jrbtgrTipai.add(jrbtVaikas); // reikalavimu tekstas jReikalavimuTekstas = new JTextField(); jReikalavimuTekstas.setBounds(140, 400, 600, 26); pnlPageidavimai.add(jReikalavimuTekstas); // skaiciavimo paklaidos invedimui jPaklaida = new JTextField(); jPaklaida.setBounds(620, 20, 40, 26); pnlPageidavimai.add(jPaklaida); jPaklaida.setText("0.0001"); jLabelPaklaida = new JLabel(); jLabelPaklaida.setText("Skaičiavimo paklaida"); pnlPageidavimai.add(jLabelPaklaida); jLabelPaklaida.setBounds(620, 5, 150, 13); // mygtukai jbtnTekstas = new JButton(); jbtnTekstas.setText("Įvesti"); jbtnTekstas.setActionCommand("IvestiTeksta"); jbtnTekstas.setBounds(20,410,100, 26); jbtnTekstas.addActionListener(lSymAction); pnlPageidavimai.add(jbtnTekstas); // aktyvumo pasirinkimas cmbbxAktyvumas = new JComboBox(); cmbbxAktyvumas.setModel(new DefaultComboBoxModel(new String[] { "1.5","1.7", "2.0", "2.2" })); pnlPageidavimai.add(cmbbxAktyvumas); cmbbxAktyvumas.setBounds(160,45,50, 26); cmbbxAktyvumas.addItemListener(lSymItem); // amziaus pasirinkimas suaugusiems cmbbxAmzius = new JComboBox(); cmbbxAmzius.setModel(new DefaultComboBoxModel(new String[] { "19-34","35-49", "50-64" })); pnlPageidavimai.add(cmbbxAmzius); cmbbxAmzius.setBounds(90,45,60, 26); cmbbxAmzius.addItemListener(lSymItem); // vaiko amziaus pasirinkimas cmbbxVaikoAmzius = new JComboBox(); cmbbxVaikoAmzius.setModel(new DefaultComboBoxModel(new String[] { "1-3","4-6", "7-10", "11-14 berniukai", "11-14 mergaitės", "15-18 berniukai", "15-18 mergaitės" })); pnlPageidavimai.add(cmbbxVaikoAmzius); cmbbxVaikoAmzius.setBounds(90,75,100, 26); cmbbxVaikoAmzius.addItemListener(lSymItem); jLabelAktyvumas = new JLabel(); jLabelAktyvumas.setText("Aktyvumas"); pnlPageidavimai.add(jLabelAktyvumas); jLabelAktyvumas.setBounds(160, 25, 70, 20); jLabelAmzius = new JLabel(); jLabelAmzius.setText("Amžius"); pnlPageidavimai.add(jLabelAmzius); jLabelAmzius.setBounds(90, 25, 70, 20); tfldPapildomi = new JTextField(); tfldPapildomi.setBounds(140, 370, 600, 26); pnlPageidavimai.add(tfldPapildomi); ikrautiPapildomuReikalavimuSarasa_V("papild_V"); ikrautiPapildomuReikalavimuSarasa_M("papild_M"); jcbPapildomosSalygos_V = new JComboBox(sPavPapildomi_V); jcbPapildomosSalygos_V.addItemListener(lSymItem); pnlPageidavimai.add(jcbPapildomosSalygos_V); jcbPapildomosSalygos_V.setBounds(430, 5, 170, 20); jcbPapildomosSalygos_V.setEnabled(false); jcbPapildomosSalygos_M = new JComboBox(sPavPapildomi_M); jcbPapildomosSalygos_M.addItemListener(lSymItem); pnlPageidavimai.add(jcbPapildomosSalygos_M); jcbPapildomosSalygos_M.setBounds(430, 25, 170, 20); jcbPapildomosSalygos_M.setEnabled(false); chkbxPapildoma = new JCheckBox(); chkbxPapildoma.setSelected(true); chkbxPapildoma.setVisible(false); chkbxPapildoma.setBounds(230, 30, 20, 20); pnlPageidavimai.add(chkbxPapildoma); chkbxPapildoma.addItemListener(lSymItem); jLabelPapildoma = new JLabel(); jLabelPapildoma.setBounds(280, 5, 300, 20); jLabelPapildoma.setText("Papildomi reikalavimai"); pnlPageidavimai.add(jLabelPapildoma); jLabelIvairovesIvedimas = new JLabel(); jLabelIvairovesIvedimas.setText("Maisto ivairovė"); jLabelIvairovesIvedimas.setBounds(22, 100, 100, 20); pnlPageidavimai.add(jLabelIvairovesIvedimas); jIvairove = new JTextField(); jIvairove.setText("1.0"); jIvairove.setBounds(22, 125, 40, 20); pnlPageidavimai.add(jIvairove); jLabelIvairovesSprendimas = new JLabel(); jLabelIvairovesSprendimas.setText("Dietos maisto ivairumas:"); pnlRezultatai.add(jLabelIvairovesSprendimas); jLabelIvairovesSprendimas.setBounds(15, 418, 152, 24); jLabelIvairovesSprendimas2 = new JLabel(); jLabelIvairovesSprendimas2.setText("0"); pnlRezultatai.add(jLabelIvairovesSprendimas2); jLabelIvairovesSprendimas2.setBounds(180, 418, 252, 24); //amziaus pasirinkimas initTotals(); jrbtVyras.setSelected(true); } /* ------------------------------------ * metodas tblLentele_mouseClicked * atvaizduoja lenteleje pazymeta produkta * i kitus appleto elementus * ------------------------------------ */ void tblLentele_mouseClicked(MouseEvent event) { txtfldName.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 0).toString()); txtfldCalories.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 4).toString()); txtfldProteins.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 1).toString()); txtfldFats.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 2).toString()); txtfldCarbohydrates.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 3).toString()); txtfldVitaminC.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 5).toString()); txtfldVitaminA.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 6).toString()); txtfldMineralCa.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 7).toString()); txtfldMineralNa.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 8).toString()); txtfldVitaB2.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 9).toString()); txtfldVitaB3.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 10).toString()); txtfldVitaB6.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 11).toString()); txtfldVitaB12.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 12).toString()); txtfldVitaPP.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 13).toString()); txtfldMCA.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 14).toString()); txtfldMNa.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 15).toString()); txtfldMS.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 16).toString()); txtfldMP.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 17).toString()); txtfldMJ.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 18).toString()); cmbbxTaste.setSelectedItem(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 19)); Integer tt = Integer.valueOf(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 20).toString()); if(tt.intValue() == 1) chkbxDish.setSelected(true); else chkbxDish.setSelected(false); txtfldPrice.setText(tblmdlLentele.getValueAt(tblLentele.getSelectedRow(), 21).toString()); } private void initComponents() { ReikiaKal = new JTextField(); ReikiaAngl = new JTextField(); ReikiaBalt = new JTextField(); ReikiaRieb = new JTextField(); ReikiaVitA = new JTextField(); ReikiaVitB1 = new JTextField(); ReikiaVitB2 = new JTextField(); ReikiaVitB3 = new JTextField(); ReikiaVitB6 = new JTextField(); ReikiaVitB12 = new JTextField(); ReikiaVitC = new JTextField(); ReikiaVitE = new JTextField(); ReikiaVitPP = new JTextField(); ReikiaFosf = new JTextField(); ReikiaSer = new JTextField(); ReikiaNatr = new JTextField(); ReikiaKalc = new JTextField(); ReikiaJ = new JTextField(); jLabel1 = new JLabel(); jLabel2 = new JLabel(); jLabel3 = new JLabel(); jLabel4 = new JLabel(); jLabel5 = new JLabel(); jLabel6 = new JLabel(); jLabel7 = new JLabel(); jLabel8 = new JLabel(); jLabel9 = new JLabel(); jLabel10 = new JLabel(); jLabel11 = new JLabel(); jLabel12 = new JLabel(); jLabel13 = new JLabel(); jLabel14 = new JLabel(); jLabel15 = new JLabel(); jLabel16 = new JLabel(); jLabel17 = new JLabel(); jLabel18 = new JLabel(); jLabel19 = new JLabel(); jLabel20 = new JLabel(); jLabel21 = new JLabel(); jLabel22 = new JLabel(); getContentPane().setLayout(null); pnlPageidavimai.setLayout(null); /*------------- normos zmogaus mases kilogramui --------------*/ jLabel17.setText("Zmogui vienam mases kg reikia:"); pnlPageidavimai.add(jLabel17); jLabel17.setBounds(240,50, 240, 20); jLabel1.setText("Kaloriju kiekis, kCal"); pnlPageidavimai.add(jLabel1); jLabel1.setBounds(240, 70, 120, 20); ReikiaKal.setText("34.7"); pnlPageidavimai.add(ReikiaKal); ReikiaKal.setBounds(240, 90, 80, 20); jLabel2.setText("Angliavandeniai, g"); pnlPageidavimai.add(jLabel2); jLabel2.setBounds(360, 70, 120, 20); ReikiaAngl.setText("6.5"); pnlPageidavimai.add(ReikiaAngl); ReikiaAngl.setBounds(360, 90, 80, 20); jLabel4.setText("Baltymu kiekis, g"); pnlPageidavimai.add(jLabel4); jLabel4.setBounds(480, 70, 120, 20); ReikiaBalt.setText("1.3"); pnlPageidavimai.add(ReikiaBalt); ReikiaBalt.setBounds(480, 90, 80, 20); jLabel5.setText("Riebalu kiekis, g"); pnlPageidavimai.add(jLabel5); jLabel5.setBounds(600, 70, 110, 20); ReikiaRieb.setText("1.3"); pnlPageidavimai.add(ReikiaRieb); ReikiaRieb.setBounds(600, 90, 80, 20); /*------------- zmogaus normos parai --------------------------*/ jLabel18.setText("Zmogaus paros norma:"); pnlPageidavimai.add(jLabel18); jLabel18.setBounds(240,120, 200, 20); /*VITAMINAI*/ jLabel19.setText("Vitaminai"); pnlPageidavimai.add(jLabel19); jLabel19.setBounds(260,140, 200, 20); /*1*/ jLabel6.setText("Vitaminas A, mg"); pnlPageidavimai.add(jLabel6); jLabel6.setBounds(240, 160, 110, 20); ReikiaVitA.setText("0.8"); pnlPageidavimai.add(ReikiaVitA); ReikiaVitA.setBounds(240, 180, 80, 20); /*2*/ jLabel9.setText("Vitamimas B1, mg"); pnlPageidavimai.add(jLabel9); jLabel9.setBounds(240, 200, 110, 20); ReikiaVitB1.setText("1.5"); pnlPageidavimai.add(ReikiaVitB1); ReikiaVitB1.setBounds(240, 220, 80, 20); /*3*/ jLabel10.setText("Vitaminas B2, mg"); pnlPageidavimai.add(jLabel10); jLabel10.setBounds(240, 240, 110, 20); ReikiaVitB2.setText("1.7"); pnlPageidavimai.add(ReikiaVitB2); ReikiaVitB2.setBounds(240, 260, 80, 20); /*4*/ jLabel11.setText("Vitaminas B3, mg"); pnlPageidavimai.add(jLabel11); jLabel11.setBounds(240, 280, 110, 20); ReikiaVitB3.setText("1.8"); pnlPageidavimai.add(ReikiaVitB3); ReikiaVitB3.setBounds(240, 300, 80, 20); /*5*/ jLabel12.setText("Vitaminas B6, mg"); pnlPageidavimai.add(jLabel12); jLabel12.setBounds(360, 160, 110, 20); ReikiaVitB6.setText("2"); pnlPageidavimai.add(ReikiaVitB6); ReikiaVitB6.setBounds(360, 180, 80, 20); /*6*/ jLabel8.setText("Vitaminas B12, mkrg"); pnlPageidavimai.add(jLabel8); jLabel8.setBounds(360, 200, 120, 20); ReikiaVitB12.setText("6"); pnlPageidavimai.add(ReikiaVitB12); ReikiaVitB12.setBounds(360, 220, 80, 20); /*7*/ jLabel7.setText("Vitaminas C, mg"); pnlPageidavimai.add(jLabel7); jLabel7.setBounds(360, 240, 110, 20); ReikiaVitC.setText("60"); pnlPageidavimai.add(ReikiaVitC); ReikiaVitC.setBounds(360, 260, 80, 20); /*8*/ jLabel3.setText("Vitaminas E, mg"); pnlPageidavimai.add(jLabel3); jLabel3.setBounds(360, 280, 110, 20); ReikiaVitE.setText("10"); pnlPageidavimai.add(ReikiaVitE); ReikiaVitE.setBounds(360, 300, 80, 20); /******papildymai******/ /*9 PP nebuvo*/ jLabel21.setText("Vitaminas PP, mg"); pnlPageidavimai.add(jLabel21); jLabel21.setBounds(240, 320, 110, 20); ReikiaVitPP.setText("17"); pnlPageidavimai.add(ReikiaVitPP); ReikiaVitPP.setBounds(240, 340, 80, 20); /*MIKROELEMENTAI*/ jLabel20.setText("Mikroelementai"); pnlPageidavimai.add(jLabel20); jLabel20.setBounds(500,140, 200, 20); /*1*/ jLabel16.setText("Fosforas, mg"); pnlPageidavimai.add(jLabel16); jLabel16.setBounds(490, 160, 110, 20); ReikiaFosf.setText("900"); pnlPageidavimai.add(ReikiaFosf); ReikiaFosf.setBounds(490, 180, 80, 20); /*2*/ jLabel15.setText("Mikroel. S, mg"); pnlPageidavimai.add(jLabel15); jLabel15.setBounds(490, 200, 110, 20); ReikiaSer.setText("1000"); pnlPageidavimai.add(ReikiaSer); ReikiaSer.setBounds(490, 220, 80, 20); /*3*/ jLabel14.setText("Mikroel. Na, mg"); pnlPageidavimai.add(jLabel14); jLabel14.setBounds(490, 240, 110, 20); ReikiaNatr.setText("1500"); pnlPageidavimai.add(ReikiaNatr); ReikiaNatr.setBounds(490, 260, 80, 20); /*4*/ jLabel13.setText("Mikroel. Ca, mg"); pnlPageidavimai.add(jLabel13); jLabel13.setBounds(490, 280, 110, 20); ReikiaKalc.setText("1000"); pnlPageidavimai.add(ReikiaKalc); ReikiaKalc.setBounds(490, 300, 80, 20); /******papildymai******/ /*5 J nebuvo*/ jLabel22.setText("Mikroel. J, mg"); pnlPageidavimai.add(jLabel22); jLabel22.setBounds(610, 160, 110, 20); ReikiaJ.setText("17"); pnlPageidavimai.add(ReikiaJ); ReikiaJ.setBounds(610, 180, 80, 20); } /* ------------------------------------ * metodas initTotals() * inicijuoja atsakymu laukus * ------------------------------------ */ private void initTotals() { /*Papildomi atsakymai*/ lblPriceTotal = new JLabel(); lblPriceTTlbl = new JLabel(); lblPriceTotalS = new JLabel(); lblPriceTTlblS = new JLabel(); lblVitATotal = new JLabel(); lblVitCTotal = new JLabel(); lblVitB1Total = new JLabel(); lblVitB2Total = new JLabel(); lblVitB3Total = new JLabel(); lblVitB6Total = new JLabel(); lblVitB12Total = new JLabel(); lblVitETotal = new JLabel(); lblVitPPTotal = new JLabel(); lblMinCaTotal = new JLabel(); lblMinNaTotal = new JLabel(); lblMinSTotal = new JLabel(); lblMinPTotal = new JLabel(); lblMinJTotal = new JLabel(); lblVitATTlbl = new JLabel(); lblVitB1TTlbl = new JLabel(); lblVitB2TTlbl = new JLabel(); lblVitB3TTlbl = new JLabel(); lblVitB6TTlbl = new JLabel(); lblVitB12TTlbl = new JLabel(); lblVitCTTlbl = new JLabel(); lblVitETTlbl = new JLabel(); lblVitPPTTlbl = new JLabel(); lblMinCaTTlbl = new JLabel(); lblMinNaTTlbl = new JLabel(); lblMinSTTlbl = new JLabel(); lblMinPTTlbl = new JLabel(); lblMinJTTlbl = new JLabel(); //--------- lblPriceTTlbl.setText("Dietos kaina(reali) Lt:"); pnlRezultatai.add(lblPriceTTlbl); lblPriceTTlbl.setBounds(15, 357, 252, 24); lblPriceTotal.setText("0"); pnlRezultatai.add(lblPriceTotal); lblPriceTotal.setBounds(180, 357, 200, 24); //--------- lblPriceTTlblS.setText("Dietos kaina(subj.) Lt:"); pnlRezultatai.add(lblPriceTTlblS); lblPriceTTlblS.setBounds(15, 384, 252, 24); lblPriceTotalS.setText("0"); pnlRezultatai.add(lblPriceTotalS); lblPriceTotalS.setBounds(180, 384, 200, 24); //-------------------------- lblVitATTlbl.setText("Vitamino A (mg) :"); pnlRezultatai.add(lblVitATTlbl); lblVitATTlbl.setBounds( 480, 27, 200, 24); lblVitATotal.setText("0"); pnlRezultatai.add(lblVitATotal); lblVitATotal.setBounds( 640, 27, 200, 24); //----- lblVitB1TTlbl.setText("Vitamino B1 (mg) :"); pnlRezultatai.add(lblVitB1TTlbl); lblVitB1TTlbl.setBounds(480, 54, 200, 24); lblVitB1Total.setText("0"); pnlRezultatai.add(lblVitB1Total); lblVitB1Total.setBounds(640, 54, 252, 24); //--- lblVitB2TTlbl.setText("Vitamino B2 (mg) :"); pnlRezultatai.add(lblVitB2TTlbl); lblVitB2TTlbl.setBounds(480,81, 200, 24); lblVitB2Total.setText("0"); pnlRezultatai.add(lblVitB2Total); lblVitB2Total.setBounds(640,81, 200, 24); //--- lblVitB3TTlbl.setText("Vitamino B3 (mg) :"); pnlRezultatai.add(lblVitB3TTlbl); lblVitB3TTlbl.setBounds(480, 108, 200, 24); lblVitB3Total.setText("0"); pnlRezultatai.add(lblVitB3Total); lblVitB3Total.setBounds(640, 108, 200, 24); //--- lblVitB6TTlbl.setText("Vitamino B6 (mg) :"); pnlRezultatai.add(lblVitB6TTlbl); lblVitB6TTlbl.setBounds(480, 135, 200, 24); lblVitB6Total.setText("0"); pnlRezultatai.add(lblVitB6Total); lblVitB6Total.setBounds(640, 135, 200, 24); //--- lblVitB12TTlbl.setText("Vitamino B12(mkrg):"); pnlRezultatai.add(lblVitB12TTlbl); lblVitB12TTlbl.setBounds(480, 162, 200, 24); lblVitB12Total.setText("0"); pnlRezultatai.add(lblVitB12Total); lblVitB12Total.setBounds(640, 162, 200, 24); //--- lblVitCTTlbl.setText("Vitamino C (mg) :"); pnlRezultatai.add(lblVitCTTlbl); lblVitCTTlbl.setBounds( 480, 189 , 200, 24); lblVitCTotal.setText("0"); pnlRezultatai.add(lblVitCTotal); lblVitCTotal.setBounds( 640, 189 , 200, 24); //--- lblVitETTlbl.setText("Vitamino E (mg) :"); pnlRezultatai.add(lblVitETTlbl); lblVitETTlbl.setBounds(480, 216, 200, 24); lblVitETotal.setText("0"); pnlRezultatai.add(lblVitETotal); lblVitETotal.setBounds(640, 216, 200, 24); //--- lblVitPPTTlbl.setText("Vitamino PP (mg) :"); pnlRezultatai.add(lblVitPPTTlbl); lblVitPPTTlbl.setBounds(480, 243, 200, 24); lblVitPPTotal.setText("0"); pnlRezultatai.add(lblVitPPTotal); lblVitPPTotal.setBounds(640, 243, 200, 24); //--- lblMinCaTTlbl.setText("Mikroelemento Ca (mg) :"); pnlRezultatai.add(lblMinCaTTlbl); lblMinCaTTlbl.setBounds(480, 270, 200, 24); lblMinCaTotal.setText("0"); pnlRezultatai.add(lblMinCaTotal); lblMinCaTotal.setBounds(640, 270, 200, 24); //--- lblMinNaTTlbl.setText("Mikroelemento Na (mg) :"); pnlRezultatai.add(lblMinNaTTlbl); lblMinNaTTlbl.setBounds(480, 297, 200, 24); lblMinNaTotal.setText("0"); pnlRezultatai.add(lblMinNaTotal); lblMinNaTotal.setBounds(640, 297, 200, 24); //--- lblMinSTTlbl.setText("Mikroelemento S (mg) :"); pnlRezultatai.add(lblMinSTTlbl); lblMinSTTlbl.setBounds(480, 324, 200, 24); lblMinSTotal.setText("0"); pnlRezultatai.add(lblMinSTotal); lblMinSTotal.setBounds(640, 324, 200, 24); //--- lblMinPTTlbl.setText("Mikroelemento P (mg) :"); pnlRezultatai.add(lblMinPTTlbl); lblMinPTTlbl.setBounds(480, 351, 200, 24); lblMinPTotal.setText("0"); pnlRezultatai.add(lblMinPTotal); lblMinPTotal.setBounds(640, 351, 200, 24); //--- lblMinJTTlbl.setText("Mikroelemento J (mg) :"); pnlRezultatai.add(lblMinJTTlbl); lblMinJTTlbl.setBounds(480, 378, 200, 24); lblMinJTotal.setText("0"); pnlRezultatai.add(lblMinJTotal); lblMinJTotal.setBounds(640, 378, 200, 24); /*end*/ } }