/**********cmbbxIAddTaste********************************************************************* * Dietos uzdavinio sprendimo klase * ----------------------------------------------------------------------------- * Atliko: Ana Jakaitiene, Laurynas Simaitis, IFM 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 *------------------------------------------------ **/ package source; import com.symantec.itools.javax.swing.borders.LineBorder; import com.symantec.itools.javax.swing.models.*; import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.util.EventObject; import javax.swing.*; import javax.swing.text.JTextComponent; import lp.*; import symantec.itools.lang.Context; import java.util.*; public class Dieta extends JApplet { /*--------------------------------------------- * parametrai optimizacijai ? *--------------------------------------------*/ static final short LE = 0; static final short EQ = 1; static final short GE = 2; static final short OF = 3; 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 *-------------------------------------*/ public boolean duomenuKlaida; String failas; JDialog D; JLabel lblFailas; JTextField txtfldFailas; JButton btnOK; JTabbedPane tbdpnlBendras; JPanel pnlDuomenys; JScrollPane scrlpnLentele; JTable tblLentele; JLabel lblLentelesPav; JLabel lblRedagavimas; JLabel lblName; JTextField txtfldName; JLabel lblPrice; JTextField txtfldPrice; JLabel lblCalories; JTextField txtfldCalories; JLabel lblProteins; JTextField txtfldProteins; JLabel lblFats; JTextField txtfldFats; JLabel lblCarbohydrates; JTextField txtfldCarbohydrates; JLabel lblTaste; JComboBox cmbbxTaste; JButton btnLoad; JButton btnNew; JButton btnUpdate; JButton btnNext1; JButton btnDelete; JCheckBox chkbxDish; JLabel lblDish; JLabel JLabel5; JLabel JLabel6; JLabel JLabel7; JLabel JLabel8; JLabel JLabelB22; JLabel JLabelB33; JLabel JLabelB66; JLabel JLabelB122; JLabel JLabelPP; JLabel JLabelCa2; JLabel JLabelNa2; JLabel JLabelS2; JLabel JLabelP2; JLabel JLabelJ2; JTextField txtfldVitaminC; JTextField txtfldVitaminA; JTextField txtfldMineralCa; JTextField txtfldMineralNa; JPanel pnlPageidavimai; JTextField txtfldWeight; JLabel lblWeight; JButton btnNext2; JComboBox cmbbxOptimization; JLabel lblOptimization; JTextField txtfldVitaB2; JTextField txtfldVitaB3; JTextField txtfldVitaB6; JTextField txtfldVitaB12; JTextField txtfldVitaPP; JTextField txtfldMCA; JTextField txtfldMNa; JTextField txtfldMS; JTextField txtfldMP; JTextField txtfldMJ; JLabel lblImportance; JTextField cmbbxImportance; JLabel JLabel9; JLabel JLabel10; JLabel JLabel11; JLabel JLabel12; JLabel JLabel13; JLabel JLabel14; JLabel JLabel15; JPanel pnlRezultatai; JScrollPane JScrollPane1; JTable JTable1; JLabel JLabel1; JLabel JLabel2; JLabel JLabel3; JLabel JLabel4; JLabel lblCaloriesTotal; JLabel lblProteinsTotal; JLabel lblFatsTotal; JLabel lblCarbohydratesTotal; /*Papildomi atsakymai*/ JLabel lblPriceTTlbl; JLabel lblPriceTotal; JLabel lblPriceTTlblS; JLabel lblPriceTotalS; JLabel lblVitATotal; JLabel lblVitCTotal; JLabel lblVitB1Total; JLabel lblVitB2Total; JLabel lblVitB3Total; JLabel lblVitB6Total; JLabel lblVitB12Total; JLabel lblVitETotal; JLabel lblVitPPTotal; JLabel lblMinCaTotal; JLabel lblMinNaTotal; JLabel lblMinSTotal; JLabel lblMinPTotal; JLabel lblMinJTotal; JLabel lblVitATTlbl; JLabel lblVitB1TTlbl; JLabel lblVitB2TTlbl; JLabel lblVitB3TTlbl; JLabel lblVitB6TTlbl; JLabel lblVitB12TTlbl; JLabel lblVitCTTlbl; JLabel lblVitETTlbl; JLabel lblVitPPTTlbl; JLabel lblMinCaTTlbl; JLabel lblMinNaTTlbl; JLabel lblMinSTTlbl; JLabel lblMinPTTlbl; JLabel lblMinJTTlbl; /*end*/ StringTableModel tblmdlLentele; StringComboBoxModel cmbbxmdlTaste; StringComboBoxModel cmbbxmdlProteinsW; StringComboBoxModel cmbbxmdlfatsW; StringComboBoxModel cmbbxmdlCarbohydratesW; StringComboBoxModel cmbbxmdlCaloriesW; LineBorder lineBorder1; StringTableModel tblmdlRezultatai; StringComboBoxModel cmbbxmdlOptimize; StringComboBoxModel cmbbxmdlBias; JLabel lblStatus; StringComboBoxModel cmbbxmdlITaste; StringComboBoxModel cmbbxmdlIPrice; StringComboBoxModel cmbbxmdlImportance; // NAUJI COMBOBOXAI private javax.swing.JTextField ReikiaAngl; private javax.swing.JTextField ReikiaBalt; private javax.swing.JTextField ReikiaFosf; private javax.swing.JTextField ReikiaKal; private javax.swing.JTextField ReikiaKalc; private javax.swing.JTextField ReikiaNatr; private javax.swing.JTextField ReikiaRieb; private javax.swing.JTextField ReikiaSer; private javax.swing.JTextField ReikiaJ; private javax.swing.JTextField ReikiaVitA; private javax.swing.JTextField ReikiaVitB1; private javax.swing.JTextField ReikiaVitB2; private javax.swing.JTextField ReikiaVitB3; private javax.swing.JTextField ReikiaVitB6; private javax.swing.JTextField ReikiaVitB12; private javax.swing.JTextField ReikiaVitC; private javax.swing.JTextField ReikiaVitE; private javax.swing.JTextField ReikiaVitPP; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel17; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19;//marijus private javax.swing.JLabel jLabel20;//marijus private javax.swing.JLabel jLabel21;//marijus private javax.swing.JLabel jLabel22;//marijus private javax.swing.JLabel jLabe20; private javax.swing.JTabbedPane jTabbedPane1; /*nauji Marijus*/ 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.show(); URL fileURL = null; BufferedReader dataStream = null; int n = 0; try { fileURL = new URL(String.valueOf(getCodeBase()) + failas); } catch(MalformedURLException _ex) { } try { java.io.InputStream input = fileURL.openStream(); dataStream = new BufferedReader(new InputStreamReader(input)); lblStatus.setText("File " + fileURL.toString() + " opened"); } catch(IOException _ex) { lblStatus.setText("Error opening file: " + fileURL.toString()); } try { String s = dataStream.readLine(); Integer sk = new Integer(s); n = sk.intValue(); } catch(IOException _ex) { lblStatus.setText("1 Wrong data file."); } String strduom[] = new String[n]; try { for(int i = 0; i < n; i++) strduom[i] = dataStream.readLine(); tblmdlLentele.setItems(strduom); } catch(IOException _ex) { lblStatus.setText("2 Wrong data file."); } try { dataStream.close(); } catch(IOException _ex) { lblStatus.setText("File closing failure."); } } /*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) { //String failas = "papild"; URL fileURL = null; BufferedReader dataStream = null; int n = 0; try { fileURL = new URL(String.valueOf(getCodeBase()) + failas); } catch(MalformedURLException _ex) { } try { java.io.InputStream input = fileURL.openStream(); dataStream = new BufferedReader(new InputStreamReader(input)); //lblStatus.setText("File " + fileURL.toString() + " opened"); } catch(IOException _ex) { //lblStatus.setText("Error opening file: " + fileURL.toString()); JOptionPane.showMessageDialog(this, "Failo skaitymo klaida!"); JOptionPane.showMessageDialog(this, _ex.toString()); } try { String s = dataStream.readLine(); Integer sk = new Integer(s); n = sk.intValue(); papildomiReikalavimai_V = new String [n]; sPavPapildomi_V = new String [n]; } catch(IOException _ex) { papildomiReikalavimai_V = null; sPavPapildomi_V = null; //lblStatus.setText("1 Wrong data file."); JOptionPane.showMessageDialog(this, "1 Wrong data file."); } String strduom[] = new String[n]; try { for(int i = 0; i < n; i++) { sPavPapildomi_V[i] = dataStream.readLine(); papildomiReikalavimai_V[i] = dataStream.readLine(); } //tblmdlLentele.setItems(strduom); } catch(IOException _ex) { //lblStatus.setText("2 Wrong data file."); JOptionPane.showMessageDialog(this, "Klaida duomenu faile!"); } try { dataStream.close(); } catch(IOException _ex) { JOptionPane.showMessageDialog(this, "Klaida uzdarant duomenu faila"); } } /*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) { //String failas = "papild"; URL fileURL = null; BufferedReader dataStream = null; int n = 0; try { fileURL = new URL(String.valueOf(getCodeBase()) + failas); } catch(MalformedURLException _ex) { } try { java.io.InputStream input = fileURL.openStream(); dataStream = new BufferedReader(new InputStreamReader(input)); //lblStatus.setText("File " + fileURL.toString() + " opened"); } catch(IOException _ex) { //lblStatus.setText("Error opening file: " + fileURL.toString()); JOptionPane.showMessageDialog(this, "Failo skaitymo klaida!"); JOptionPane.showMessageDialog(this, _ex.toString()); } try { String s = dataStream.readLine(); Integer sk = new Integer(s); n = sk.intValue(); papildomiReikalavimai_M = new String [n]; sPavPapildomi_M = new String [n]; } catch(IOException _ex) { papildomiReikalavimai_M = null; sPavPapildomi_M = null; lblStatus.setText("1 Wrong data file."); } String strduom[] = new String[n]; try { for(int i = 0; i < n; i++) { sPavPapildomi_M[i] = dataStream.readLine(); papildomiReikalavimai_M[i] = dataStream.readLine(); } //tblmdlLentele.setItems(strduom); } catch(IOException _ex) { lblStatus.setText("2 Wrong data file."); JOptionPane.showMessageDialog(this, "Klaida duomenu faile!"); } try { dataStream.close(); } catch(IOException _ex) { JOptionPane.showMessageDialog(this, "Klaida uzdarant duomenu faila"); } } /* ------------------------------------ * 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() + "," + /*Patiekalas*/ 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 * ----------------------------------------------------*/ void SetProdOnTaste() { // productCount >0 (pries kreipiantis buvo patikrinta //atrenka produktus pagal skonio faktorius int j=0; int sv=cmbbxIAddTaste.getSelectedIndex(); int sv1=0; float sko=0; if (sv==0) {sv1=sv;} //jei skonis nevertinamas maksimalus skonio reiksme else if (sv==10){sv1=8;} //jei skonis max, sumazinam 2 else {sv1=sv;}; //kitu atveju imam koks ivestas activProdCnt=0; for(int i = 0; i < productCount; i++){ sko=produktai[i].getTaste(); //gauk skoni if(sko>=sv1)//ivedam tik tuos jei skonis mus tenkina, { j++; //produktai1[j-1] = new Product(); //L.Simaitis - kam kurti objekta, kuri po to perraso ant virsaus?? produktai1[j-1] =produktai[i]; }//if }//for //******pabaiga******************* if (j!=0){ activProdCnt=j; //produktu skaicius kurie itraukiami i skaiciavimus prodActiv=new Product[activProdCnt]; for (int i=0; i < activProdCnt; i++){ //prodActiv[i]= new Product(); //L.Simaitis - kam kurti objekta, kuri po to perraso ant virsaus?? prodActiv[i]=produktai1[i]; } } } /* ------------------------------------ * metodas btnNext_actionPerformed * Atlieka veiksma "Toliau" * 2. is nustatymo langu kreipiasi i * optimizacija ir atlieka veiksmus * bei gauna rezultatus * ------------------------------------ */ 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){ // lblStatus.setText("Su pasirinktu skoniu (-2) produktu nerasta"); tbdpnlBendras.setSelectedIndex(0); }else{ //int optimize = cmbbxOptimization.getSelectedIndex(); /*bias - grozio ytaka*/ double weight = Double.valueOf(txtfldWeight.getText()).doubleValue(); double weight2; // L. Simaitis ------------------ // 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); /*suformuojam sarasa kur pas mus tik sveiki skaiciai - patiekalai*/ short kl = 1; for(int i = 0; i < activProdCnt; i++) if(prodActiv[i].getDish() == 1) lpSolve.set_int(lpRec, i + 1, kl); /*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 = Double.valueOf(ReikiaKal.getText()).doubleValue(); double Fat = Double.valueOf(ReikiaRieb.getText()).doubleValue(); double Pro = Double.valueOf(ReikiaBalt.getText()).doubleValue(); double Car = Double.valueOf(ReikiaAngl.getText()).doubleValue(); double VitC = Double.valueOf(ReikiaVitC.getText()).doubleValue(); double VitA = Double.valueOf(ReikiaVitA.getText()).doubleValue(); double MinCa = Double.valueOf(ReikiaKalc.getText()).doubleValue(); double MinNa = Double.valueOf(ReikiaNatr.getText()).doubleValue(); //Mg=Na pas mumis(Marijus:todel pakeiciau pavadinima) //Nauji constraints double VitE = Double.valueOf(ReikiaVitE.getText()).doubleValue(); double VitB1 = Double.valueOf(ReikiaVitB1.getText()).doubleValue(); double VitB2 = Double.valueOf(ReikiaVitB2.getText()).doubleValue(); double VitB3 = Double.valueOf(ReikiaVitB3.getText()).doubleValue(); double VitB6 = Double.valueOf(ReikiaVitB6.getText()).doubleValue(); double VitB12 = Double.valueOf(ReikiaVitB12.getText()).doubleValue(); double VitPP = Double.valueOf(ReikiaVitPP.getText()).doubleValue(); double Fosf = Double.valueOf(ReikiaFosf.getText()).doubleValue(); double Siera = Double.valueOf(ReikiaSer.getText()).doubleValue(); double J = Double.valueOf(ReikiaJ.getText()).doubleValue(); double BeautyFactor =Double.valueOf(cmbbxImportance.getText()).doubleValue();//cmbbxImportance.getSelectedIndex()+1; fMaistoIvairumas = Double.valueOf(jIvairove.getText()).doubleValue(); /* beautyfactor inervalas nuo (0 iki+begalybes) * (0;1) - suvartojama maziau negu reikia -tuo atzvilgiu dieta neotimali * todel grozio faktorius nuo 1 * (1) -tiek kiek reikia * (1;+begalybe) - daugiau nei reikia*/ //double Paklaida =0.2;//-0.1; //su pakalida 0.1 daznai nera rezultatu L. Simaitis double Paklaida = Double.valueOf(jPaklaida.getText()).doubleValue(); 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)xi + g(sum(ai1*xi)-b1) <<-- nebuvo maisto ivairoves ivertinimo L. Simaitis * tikslo f-ja xi atzvilgiu: minx->(sum((ci-si+g*ai1)xi-g*b1) * kur ci - produkto kg/vnt kaina, si - skonio "kaina", g - grozio faktorius, *-------------<< L. Simaitis >>-------------------- * === tikslo funkcija pakeista i tokia: minx->(sum(ci-si)xi + g(sum(ai1*xi)-b1) - d(sum(di*xi) * === funkcija xi atzvilgiu minx->(sum((ci-si+g*ai1-d*di)xi-g*b1) * === kur di - maisto ivairoves (diversity) faktorius * === di=1 - jei i-tasisi produktas yra patiekalas, kitu atveju di=0 * aij - kaloriju kiekis kg, b1 - kaloriju norma **/ double prieX; double Cval; /* tikslo f-ja xi: sum((ci-si+g*ai1)xi -g*b1) * === sum((ci-si+g*ai1-d*di)xi-g*b1 * is cia: xi(ci-si+g*ai1) * === xi(ci-si+g*ai1-d*di) * kadangi g*b1 konstanta ir ji visiem produktam vienoda * todel skaiciavimams itakos neturi ***/ Cval=BeautyFactor*weight; for(int i = 0; i < activProdCnt; i++){ //90(84) formule vienam produktui data[i + 1] =(prodActiv[i].price - prodActiv[i].price*prodActiv[i].Taste*0.1 + BeautyFactor*prodActiv[i].calories - fMaistoIvairumas*prodActiv[i].getDish()); if ( data[i+1]<0) { 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{//skaiciuoti lpSolve.set_obj_fn(lpRec, data); lpSolve.set_minim(lpRec); /*suvienodiname dimensijas tarp sitemoje esanciu reiksmiu ir to ka skaiciuosime*/ /* Reikalaujamos normos 1kg zmogaus mases, todel perskaiciuojame min */ /* apribojimus sudarome su "paklaidos" nukrypimu nuo min ir max*/ /*Calories*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getCalories(); rhs = (Cal - Cal*Paklaida) * weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Cal + Cal*Paklaida) * weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, LE, rhs); /*Proteins*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getProteins(); rhs = (Pro -Pro*Paklaida)* weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Pro + Pro *Paklaida) * weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, LE, rhs); /*Fats*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getFats(); rhs = (Fat - Fat * Paklaida)*weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Fat + Fat * Paklaida) * weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, LE, rhs); /*Carbohydrates*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getCarbohydrates(); rhs = (Car -Car * Paklaida)* weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = (Car + Car * Paklaida) * weight2; // L. Simaitis lpSolve.add_constraint(lpRec, data, LE, rhs); /*mikroelementai ir vitaminai pateikiami fiksuota dienos norma zmogui*/ /*vit A*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getVitA(); rhs = VitA - VitA * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = VitA + VitA * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*vit B1*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].vitB1; rhs = VitB1 - VitB1 * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = VitB1 + VitB1 * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*vit B2*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].vitB2; rhs = VitB2 - VitB2 * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = VitB2 + VitB2 * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*vit B3*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].vitB3; rhs = VitB3 - VitB3 * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = VitB3 + VitB3 * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*vit B6*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].vitB6; rhs = VitB6 - VitB6 * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = VitB6 + VitB6 * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*vit B12*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].vitB12; rhs = VitB12 - VitB12 * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = VitB12 + VitB12 * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*vit C*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getVitC(); rhs = VitC - VitC * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); /*vit E*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].vitE; rhs = VitE - VitE * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); /*vit PP*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].vitPP; rhs = VitPP - VitPP * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = VitPP + VitPP * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*mikrel Ca*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getMinCa(); rhs = MinCa - MinCa * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = MinCa + MinCa * Paklaida; lpSolve.add_constraint(lpRec, data, LE, rhs); /*mikrel Na*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].getMinNa();//Is tiesu cia Na (Marijus: pakeiciau pavadinima Mg->Na) rhs = MinNa - MinNa * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); /*mikrel S*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].minS; rhs = Siera - Siera * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); rhs = Siera + Siera * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); /*mikrel P*/ for(int i = 0; i < activProdCnt; i++) data[i + 1] = prodActiv[i].minP; rhs = Fosf - Fosf * Paklaida; lpSolve.add_constraint(lpRec, data, GE, rhs); /************ Solve problem *******************/ //L.Simaitis //daznai pagal esanumus pageidavimus nepavyksta suskaiciuoti rezultato //pastebeta savybe - keliant skonio reikialavimus produktams, suskaiciuoti pavyksta //gal todel, kad mazeja produktu skaicius? reikia patikrinti, is kur tokia priklausomybe String iter = ""; int rez; try { rez = lpSolve.solve(lpRec); } catch(java.lang.ArrayIndexOutOfBoundsException exception) { iter = " Klaida optimizuojant!"; rez = 1; } 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; double 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++) if(lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) != nn) { rezai[nr] = produktai[i - 1].getName() + "," + Double.toString(lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i)); if((lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) > 0.5+Paklaida)) { lblStatus.setForeground(new java.awt.Color(204, 102, 0)); lblStatus.setText("DEMESIO: virsijote rekomenduojama paros norma" + iter);/*Marijus: Pakeiciau warnin i normalia zinute*/ } sumcal += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getCalories(); sumpro += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getProteins(); sumfat += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getFats(); sumcar += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getCarbohydrates(); sumak += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getPrice(); sumaks += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) *((double)produktai[i - 1].getPrice()-(double)produktai[i - 1].getPrice()*(double)produktai[i - 1].getTaste()*0.1); VitC += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitC(); VitA += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitA(); MinCa+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinCa(); MinNa+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinNa(); VitE+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitE(); VitB1+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB1(); VitB2+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB2(); VitB3+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB3(); VitB6+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB6(); VitB12+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitB12(); VitPP+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getVitPP(); Fosf+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinP(); Siera+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinS(); J+= lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getMinJ(); ivairove += lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i) * (double)produktai[i - 1].getDish(); nr++; mase+=lpSolve.get_lpsolution(lpRec, lpSolve.get_lprows(lpRec) + i); }/*if get solution outerr*/ tblmdlRezultatai.setItems(rezai); String s = ""; lblCaloriesTotal.setText(Double.toString(sumcal)); lblProteinsTotal.setText(Double.toString(sumpro)); lblFatsTotal.setText(Double.toString(sumfat)); lblCarbohydratesTotal.setText(Double.toString(sumcar)); lblPriceTotal.setText(Double.toString(sumak)); lblPriceTotalS.setText(Double.toString(sumaks)); lblVitATotal.setText(Double.toString(VitA)); lblVitB1Total.setText(Double.toString(VitB1)); lblVitB2Total.setText(Double.toString(VitB2)); lblVitB3Total.setText(Double.toString(VitB3)); lblVitB6Total.setText(Double.toString(VitB6)); lblVitB12Total.setText(Double.toString(VitB12)); lblVitCTotal.setText(Double.toString(VitC)); lblVitETotal.setText(Double.toString(VitE)); lblVitPPTotal.setText(Double.toString(VitPP)); lblMinCaTotal.setText(Double.toString(MinCa)); lblMinNaTotal.setText(Double.toString(MinNa)); lblMinSTotal.setText(Double.toString(Siera)); lblMinPTotal.setText(Double.toString(Fosf)); lblMinJTotal.setText(Double.toString(J)); jLabelIvairovesSprendimas2.setText(Double.toString(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 !" + iter); //lblStatus.setText("Klaida"); } 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() + "," + /*Patiekalas*/ 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(), " "); String papild; 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 pageifavimu 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 < 0) suma = Double.valueOf(0); suma = Math.round(suma*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(); //Marijus - nauji cmbbxIAddTaste = new JComboBox(); JLabelAddOnTaste = new JLabel(); //end Marijus //NAUJI LAUKAI jTabbedPane1 = new javax.swing.JTabbedPane(); //--------------------------------------------- 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");/*Marijus: Lietuviu kaba :) ne baltimai bet 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");/*Marijus: daugiskaita ne vienaskaita*/ 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); /*Marijus: Mikroelementas korektiskesnis pavadinimas negu mineralas*/ 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 javax.swing.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:"); pnlRezultatai.add(JLabel1); JLabel1.setBounds(15, 249, 150, 25); JLabel2.setText("Proteinu kiekis:"); pnlRezultatai.add(JLabel2); JLabel2.setBounds(15, 276, 150, 25); JLabel3.setText("Riebalu kiekis:"); pnlRezultatai.add(JLabel3); JLabel3.setBounds(15, 303, 150, 25); JLabel4.setText("Angliavandeniu kiekis:"); pnlRezultatai.add(JLabel4); JLabel4.setBounds(15, 330, 150, 25); lblCaloriesTotal.setText("0"); pnlRezultatai.add(lblCaloriesTotal); lblCaloriesTotal.setBounds(166, 249, 252, 24); lblProteinsTotal.setText("0"); pnlRezultatai.add(lblProteinsTotal); lblProteinsTotal.setBounds(166, 276, 252, 24); lblFatsTotal.setText("0"); pnlRezultatai.add(lblFatsTotal); lblFatsTotal.setBounds(166, 303, 252, 24); lblCarbohydratesTotal.setText("0"); pnlRezultatai.add(lblCarbohydratesTotal); lblCarbohydratesTotal.setBounds(166, 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"); /// NAUJI 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); /* * Laurynas Simaitis * Komponentai, reikalingi reikalavimu ikrovimui pagal pasirikima * Pradzia koponentu sukurimmas */ // 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.1"); 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 javax.swing.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(); // automatiniam pageidavimu ikrovimui cmbbxAmzius.setModel(new javax.swing.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 javax.swing.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.setBounds(230, 30, 20, 20); pnlPageidavimai.add(chkbxPapildoma); chkbxPapildoma.addItemListener(lSymItem); jLabelPapildoma = new JLabel(); jLabelPapildoma.setBounds(230, 5, 300, 20); jLabelPapildoma.setText("Prideti papildomus reikalavimus"); 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(165, 418, 252, 24); //amziaus pasirinkimas /* * Pabaiga */ // 3 panel initTotals(); } /* ------------------------------------ * 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()); } //HUJ private void initComponents() { ReikiaKal = new javax.swing.JTextField(); ReikiaAngl = new javax.swing.JTextField(); ReikiaBalt = new javax.swing.JTextField(); ReikiaRieb = new javax.swing.JTextField(); ReikiaVitA = new javax.swing.JTextField(); ReikiaVitB1 = new javax.swing.JTextField(); ReikiaVitB2 = new javax.swing.JTextField(); ReikiaVitB3 = new javax.swing.JTextField(); ReikiaVitB6 = new javax.swing.JTextField(); ReikiaVitB12 = new javax.swing.JTextField(); ReikiaVitC = new javax.swing.JTextField(); ReikiaVitE = new javax.swing.JTextField(); ReikiaVitPP = new javax.swing.JTextField(); ReikiaFosf = new javax.swing.JTextField(); ReikiaSer = new javax.swing.JTextField(); ReikiaNatr = new javax.swing.JTextField(); ReikiaKalc = new javax.swing.JTextField(); ReikiaJ = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); jLabel15 = new javax.swing.JLabel(); jLabel16 = new javax.swing.JLabel(); jLabel17 = new javax.swing.JLabel(); jLabel18 = new javax.swing.JLabel(); jLabel19 = new javax.swing.JLabel(); jLabel20 = new javax.swing.JLabel(); jLabel21 = new javax.swing.JLabel(); jLabel22 = new javax.swing.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):"); pnlRezultatai.add(lblPriceTTlbl); lblPriceTTlbl.setBounds(15, 357, 252, 24); lblPriceTotal.setText("0"); pnlRezultatai.add(lblPriceTotal); lblPriceTotal.setBounds(166, 357, 200, 24); //--------- lblPriceTTlblS.setText("Dietos kaina(subj.):"); pnlRezultatai.add(lblPriceTTlblS); lblPriceTTlblS.setBounds(15, 384, 252, 24); lblPriceTotalS.setText("0"); pnlRezultatai.add(lblPriceTotalS); lblPriceTotalS.setBounds(166, 384, 200, 24); //-------------------------- lblVitATTlbl.setText("Vitamino A suma:"); pnlRezultatai.add(lblVitATTlbl); lblVitATTlbl.setBounds( 480, 27, 200, 24); lblVitATotal.setText("0"); pnlRezultatai.add(lblVitATotal); lblVitATotal.setBounds( 600, 27, 200, 24); //----- lblVitB1TTlbl.setText("Vitamino B1 suma:"); pnlRezultatai.add(lblVitB1TTlbl); lblVitB1TTlbl.setBounds(480, 54, 200, 24); lblVitB1Total.setText("0"); pnlRezultatai.add(lblVitB1Total); lblVitB1Total.setBounds(600, 54, 252, 24); //--- lblVitB2TTlbl.setText("Vitamino B2 suma:"); pnlRezultatai.add(lblVitB2TTlbl); lblVitB2TTlbl.setBounds(480,81, 200, 24); lblVitB2Total.setText("0"); pnlRezultatai.add(lblVitB2Total); lblVitB2Total.setBounds(600,81, 200, 24); //--- lblVitB3TTlbl.setText("Vitamino B3 suma:"); pnlRezultatai.add(lblVitB3TTlbl); lblVitB3TTlbl.setBounds(480, 108, 200, 24); lblVitB3Total.setText("0"); pnlRezultatai.add(lblVitB3Total); lblVitB3Total.setBounds(600, 108, 200, 24); //--- lblVitB6TTlbl.setText("Vitamino B6 suma:"); pnlRezultatai.add(lblVitB6TTlbl); lblVitB6TTlbl.setBounds(480, 135, 200, 24); lblVitB6Total.setText("0"); pnlRezultatai.add(lblVitB6Total); lblVitB6Total.setBounds(600, 135, 200, 24); //--- lblVitB12TTlbl.setText("Vitamino B12 suma:"); pnlRezultatai.add(lblVitB12TTlbl); lblVitB12TTlbl.setBounds(480, 162, 200, 24); lblVitB12Total.setText("0"); pnlRezultatai.add(lblVitB12Total); lblVitB12Total.setBounds(600, 162, 200, 24); //--- lblVitCTTlbl.setText("Vitamino C suma:"); pnlRezultatai.add(lblVitCTTlbl); lblVitCTTlbl.setBounds( 480, 189 , 200, 24); lblVitCTotal.setText("0"); pnlRezultatai.add(lblVitCTotal); lblVitCTotal.setBounds( 600, 189 , 200, 24); //--- lblVitETTlbl.setText("Vitamino E suma:"); pnlRezultatai.add(lblVitETTlbl); lblVitETTlbl.setBounds(480, 216, 200, 24); lblVitETotal.setText("0"); pnlRezultatai.add(lblVitETotal); lblVitETotal.setBounds(600, 216, 200, 24); //--- lblVitPPTTlbl.setText("Vitamino PP suma:"); pnlRezultatai.add(lblVitPPTTlbl); lblVitPPTTlbl.setBounds(480, 243, 200, 24); lblVitPPTotal.setText("0"); pnlRezultatai.add(lblVitPPTotal); lblVitPPTotal.setBounds(600, 243, 200, 24); //--- lblMinCaTTlbl.setText("Mineralo Ca suma:"); pnlRezultatai.add(lblMinCaTTlbl); lblMinCaTTlbl.setBounds(480, 270, 200, 24); lblMinCaTotal.setText("0"); pnlRezultatai.add(lblMinCaTotal); lblMinCaTotal.setBounds(600, 270, 200, 24); //--- lblMinNaTTlbl.setText("Mineralo Na suma:"); pnlRezultatai.add(lblMinNaTTlbl); lblMinNaTTlbl.setBounds(480, 297, 200, 24); lblMinNaTotal.setText("0"); pnlRezultatai.add(lblMinNaTotal); lblMinNaTotal.setBounds(600, 297, 200, 24); //--- lblMinSTTlbl.setText("Mineralo S suma:"); pnlRezultatai.add(lblMinSTTlbl); lblMinSTTlbl.setBounds(480, 324, 200, 24); lblMinSTotal.setText("0"); pnlRezultatai.add(lblMinSTotal); lblMinSTotal.setBounds(600, 324, 200, 24); //--- lblMinPTTlbl.setText("Mineralo P suma:"); pnlRezultatai.add(lblMinPTTlbl); lblMinPTTlbl.setBounds(480, 351, 200, 24); lblMinPTotal.setText("0"); pnlRezultatai.add(lblMinPTotal); lblMinPTotal.setBounds(600, 351, 200, 24); //--- lblMinJTTlbl.setText("Mineralo J suma:"); pnlRezultatai.add(lblMinJTTlbl); lblMinJTTlbl.setBounds(480, 378, 200, 24); lblMinJTotal.setText("0"); pnlRezultatai.add(lblMinJTotal); lblMinJTotal.setBounds(600, 378, 200, 24); /*end*/ } }