forum.alodk.dk

Forum for emner på min hjemmeside og andet af interesse.
Dato og tid er 18 sep 2018 15:00

Alle tider er UTC + 1 time




Skriv nyt emne Svar på emne  [ 2 indlæg ] 
Forfatter besked
Indlæg: 14 jun 2010 00:01 
Offline
Hyperaktiv
Brugeravatar

Tilmeldt: 16 maj 2010 23:43
Indlæg: 390
Geografisk sted: Danmark
Lidt info om bmi-programmet og dets anvendelse.

Denne mail er lang, så tag en kop kaffe ;-)

Projektet tog mig et års tid, fordi jeg også lige skulle lære at programmere JAVA :-)

Her er det vigtigste fra de informations-mails jeg sendte til dem der skulle have BMI-programmet i første omgang.

Bemærk at funktionerne i programmet til at beregne børne-BMI blev aldrig færdig, fordi jeg først skulle lave nogle store tabeller.

Lad være med at tænde for beregning af BMI for børn!!!

Sidst lidt kilde information.


Mail om version 5:
> Nu har jeg fået noget mere til at fungere.
>
> Jeg har endnu ikke lagt den sidste udgave ud på Nettet, men den lander på den samme side her:
>
> http://home20.inet.tele.dk/alodk/Vis_applet_bmi.htm
>
> Jeg skal lige sove lidt ;-)
>
> Jeg fixet følgende siden sidst:
>
> * Alle BMI-værdier for voksne er tastet ind og
> "virker", så vidt jeg ved.
>
> * Der er forskel på BMI-værdier for kvinder og mænd.
>
> * Farven på knappanelet er ændret til en lys blå.
>
> * Tekstarelet er blevet større, da der er flere
> BMI-grænser i Introteksten.
>
> * BørneBMI kan låses Via parameter="TextBarnBmi" Value="Off".
>
> * Overskriften er en klar blå farve. Fast indtil videre.
>
> * Baggrundsfarven for knappanelet kan stilles med
> Parameter="PanelRGB", Value="#f7f7ff" eller hvad i har lyst til.
>
> * Omstrukturering af kildetsksten, men mulighed for
> at styre mere fra hjemmesiden(Applet-Parametre).
>
> * Parametre har fået mere menneskelige navne:
> fx. "TextMegetFed" i stedet for "TxtParam5"
> og "LimKFed" i stedet for ParamLim5".
> (Lim = Limmit = grænse)
>
>
> Her er hele Parameterlisten. Kik lidt på den og se om det giver mening.
>
> public String[][] getParameterInfo()
> {
> String[][] pinfo = {
> { "TextUnder", "String", "Txt=underernæret" },
> { "TextNorm", "String", "Txt=normal" },
> { "TextMaginFed", "String", "Txt=marginal overvægtig" },
> { "TextFed", "String", "Txt=fed" },
> { "TextMegetFed", "String", "Txt=meget fed" },
> { "TextExtremtFed", "String", "Txt=ekstremt fed" },
> { "LimKUnder", "float", "Kommatal: Så er man en udsultet kvinde" },
> { "LimMUnder", "float", "Kommatal: Så er man en udsultet mand" },
> { "LimKNorm", "float", "Kommatal: Så er man en normal kvinde" },
> { "LimMNorm", "float", "Kommatal: Så er man en normal mand" },
> { "LimKMargOver", "float", "Kommatal: Så er man en marginalt overvægtig kvinde" },
> { "LimMMargOver", "float", "Kommatal: Så er man en marginalt overvægtig mand" },
> { "LimKOver", "float", "Kommatal: Så er man en overvægtig kvinde" },
> { "LimMOver", "float", "Kommatal: Så er man en overvægtig mand" },
> { "LimKFed", "float", "Kommatal: Så er man en fed kvinde" },
> { "LimMFed", "float", "Kommatal: Så er man en fed mand" },
> { "LimKXtremFed", "float", "Kommatal: Så er man en
> ekstremt fed kvinde" },
> { "LimMXtremFed", "float", "Kommatal: Så er man en
> ekstremt fed mand" },
> { "Sex", "String", "Køn, En af: Pige, Dreng, Kvinde, Mand" },
> /* Default:"Kvinde" */
> { "TxtStatur", "String", "Statur,En af: smal, norm, bred" },
> /* Default: "norm" */
> { "TxtBarnBmi", "String", "Tænd/sluk for BMI for børn: On, Off" }, /* Default: "On" */
> { "ParamIntroTxt", "String", "Beskriv BMI. Starttekst i
> det store tekstfelt" },
> { "PanelRGB", "String", "Hextal for RGB-farve fx. #f0f0f0" }};
>
> return pinfo;
> }
>
>
> Nu er der endnu at snakke om ;-)
>
> Anders
Text til Infomail til version 7.

> Nu har jeg fået noget mere til at fungere.
>
> Jeg har nu lagt den sidste udgave ud på Nettet, men den lander
> på den samme side her:
>
> http://home20.inet.tele.dk/alodk/Vis_applet_bmi.htm
>
> Jeg skal lige sove lidt ;-)
>
> Jeg fixet følgende siden sidst:
>
> * Alle BMI-værdier for voksne er tastet ind og
> "virker", så vidt jeg ved.
>
> * Der er forskel på BMI-værdier for kvinder og mænd.
>
> * Farven på knappanelet er ændret til en lys blå.
>
> * Tekstarelet er blevet større, da der er flere
> BMI-grænser i Introteksten.
>
> * BørneBMI kan låses Via parameter="TextBarnBmi" Value="Off".
>
> * Overskriften er en klar blå farve. Fast indtil videre.
>
> * Baggrundsfarven for knappanelet kan stilles med
> Parameter="PanelRGB", Value="#f7f7ff" eller hvad i har lyst til.
>
> * Omstrukturering af kildetsksten, men mulighed for
> at styre mere fra hjemmesiden(Applet-Parametre).
>
> * Parametre har fået mere menneskelige navne:
> fx. "TextMegetFed" i stedet for "TxtParam5"
> og "LimKFed" i stedet for ParamLim5".
> (Lim = Limmit = grænse)
>
> Derudover:
>
> * Installeret et hemmeligt servicemode
>
> Højde="service"
> Vægt="visparam"
> Klik på knappen
> Vupti er du i servicemode, hvor du kan se de indstillinger
> som kan ændres fra hjemmesiden (når alt virker).
>
> Højde="service"
> Vægt="bmi"
> Klik på knappen
> Vupti, ser det ud som det plejer.
>
> Indtil videre kan man kun se oplysningerne, for jeg kan ikke lige gennemskue hvordan jeg laver det, så man kan ændre værdierne, på en nem måde. Men det er nok lettere nor jeg er frisk.
>
>
> Der er et par stavefejl,som jeg lige har rettet.
>
> <Parameter = "TxtBarnBmi" Value="Off"> Slukker for at beregne
> BMI for Børn Og kommer med en passende meddelelse.
>
> <Parameter = "TxtSex" Value="Kvinde"> Sætter køn til Kvinde fra
> starten.
>
>
>
>
>
> Nu er der endnu at snakke om ;-)
>
> Anders

Infomail til version 8

> Sidste nyt:
> * Man kan vælge farve på overskriftens for og baggrund.
> Brug "service"+"visparam" til at se hvordan :-)
>
> * Jeg har rettet en intern fejl i pgm. "index Out of bounds",
> som måske kunne skabe problemer for den PC der viser siden med
> BMIprogrammet. Den var godt nok svær at finde :-P
>
> Og så vedlægger jeg Bmi_jar.zip, som skal ligge i samme mappe som din hjemmeside. Den indeholder alt hvad der skal til for at køre BMI-appletten. Se kildekoden på min side, hvordan du bruger den.
>
> Husk at der er forprogrammeret standardværdier for alt, så selv om
> du glemmer eller udelader en parameter, vil programmet køre alligevel. Det er bare ikke sikkert at du kan lide standardværdierne.
>

Her er en mail hvor jeg siger noget om kilderne:

> Jeg har været lidt ude på nettet og kikke på BMI... jeg kan ikke lade være :-)
>
> Her er de kilder jeg har tænkt mig at bruge (jeg kan jo ikke tappe noget fra jeres side endnu ;-) )
>
> Det her gav mig blod på tanden (men jeg kan ikke få plastret til at sidde fast på tungen :-D )
>
> http://inside.mines.edu/~gmurray/BMIApp ... pplet.html
>
> Vær især opmærksom på at der argumenteres intelligent for flere måder at beregne BMI på.
>
> Jeg har rettet programmet til så BMI for slanke mennesker bruger metoden med
> BMI = 1634.771687 * (weight / height^2.2)
> Men denne formel regner i tommer og pund, så jeg skal lige kikke nærmere på den, for at se om jeg skal gange med et andet tal end 1634.771687. :-) For Mennesker med normal statur bruger jeg den normale formel og for brede bruger jeg
> BMI = ? * (weight / height^1.8)
> da potensen er større for høje(slanke), må den være lavere for muskuløse(brede).
>
> Næste side handler om bedømmelse af børns BMI, og her varierer bedømmelsen med alderen, og der kan ikke gives faste tal. Dette ser jeg bare som endnu en udfordring og jeg vil vise bedømmelse af BMI ud fra kurverne, men vil nok ikke kompensere for smalle og brede børn ( hvis jeg kan finde ud af at stå det fra og til.)
> http://www.cdc.gov/nccdphp/dnpa/healthy ... ns_BMI.htm
>
> Denne side er meget informativ, især fordi den kommer omkring at atleter og bodybuildere får et højt BMI, uden at være for fede. Netop det som 1.8-formlen tager højde for.
> http://www.cdc.gov/nccdphp/dnpa/healthy ... lt_BMI.htm
>
> Lidt om de gamle, nem det er lidt diffust.
> http://www.laeger.dk/portal/page/portal ... 5_03_44629
>
> Meget fine kurver for BMI-grænser for børn.
> http://www.cdc.gov/nchs/data/nhanes/gro ... hart15.pdf
>
> http://www.cdc.gov/nchs/data/nhanes/gro ... hart16.pdf
>
> Her er endnu en af de primitive BMI-beregnere, som der går 12 på dusinet af. Jeg syntes at det kunne være sjovt at gøre lidt mere ud af det.
> http://www.slankeassistent.dk/bmi-tal-beregning.php
>
> BMI-grænserne her er lidt anderledes og er taget fra dette link.Og dem kunne jeg godt tænke mig at bruge.
> http://www.sst.dk/default.aspx?path={D8922317-CBFC-494D-9658-ADDB4C05FE26}&
>
> Her er den side som jeg gerne vil bygge mine BMI-for-piger-og-drenge på.
> http://www.paediatri.dk/vejledninger/vaekstkurver.htm
>
> Disse fine kurver kan gemmes som stribevis af talværdier, så jeg kan oplyse om BMI-værdien er i normal området mm.
> http://www.paediatri.dk/vejledninger/va ... dymass.pdf
> http://www.paediatri.dk/vejledninger/va ... dymass.pdf
>
> Den kritik af BMI, som vi vil ignorere, for ellers har jeg spildt massevis af timer og programmeringsglæde.
> http://videnskab.dk/content/dk/krop_sun ... t_maleband
>
> Endnu en side med en primitiv BMI-beregner, men med en god forklaring med tegninger.
> http://www.run4u.dk/index.php?side=1020
>
> Nederst på side 2 står noget om forholdet mellem BMI for kvinder og mænd(BMI er oprindelig fastlagt for kvinder)
> Øverst på side 4 beskrives forholdet mellem alder og BMI. Dette vil jeg gerne tage med i programmet, men jeg skal lige finde ud af om det højere BMI med alderen er en god ting og i hvilket omfang det skal påvirke bedømmelsen af i hvilken BMI-gruppe man lander eller om det skal modregnes i BMI-værdien, ligesom statur.
> http://www.biostat.au.dk/teaching/basic ... okt06b.pdf
>
> Endnu en side med en simpel BMI-beregner, som ikke virker... denne løsning kan ikke anbefales ;-)
> http://www.piabjerregaard.dk/showpage.asp?id=56
>
>
> Håber at det giver en ide om hvad jeg har gang i. Det skal lige siges at jeg så vidt mulig vil skjule alle teorierne bag en simpel overflade. Man kan altid nøjes med at indtaste højde og vægt og klikke beregn.
>
> Programmet vil som standard stå på "kvinde", "20-30år", "Normal statur". Desværre vil de nok være nødvendigt at lave nogle flere forklaringer, for værdierne med børn og ældre personer, men jeg vil lave udkast til teksterne, baseret på "videnskabelige fakta" i et neutralt sprog.
>
>
>
> Programmet er kommet lidt videre end den forgående udgave.
> Nu kan det:
>
> * Beregne BMI som alle de andre programmer.
> * Beregne BMI for slank(høj) og bred(muskuløs) statur.
> * Modtage information om pige-dreng-kvinde-mand.
> * Modtage information om alder i små intervaller for børn og store intervaller for voksne.
> * Hvis man vælger pige eller dreng, vil alder stille sig på under 20 hvis den er over.
> * Hvis man vælger pige eller dreng, vil alder ikke ændre sig, hvis den er under 20.
> * Hvis man vælger kvinde eller mand, vil alderen også indstille sig over 20 efter behov.
> * Hvis man vælger en "voksen" alder, vil pige skifte til kvinde og dreng skifte til mand,
> med mindre det er indstillet i forvejen.
> * Det modsatte vil ske, hvis man vælger en "børne"-alder.
> * Barn-voksen og alder bliver endnu ikke taget med i beregningerne.
>
> Jeg har følgende planer:
>
> * Lave intervallerne for børn på 1 eller 2 år, alt efter hvor besværligt det er. Der er meget gode kilde-data.
> * Indtaste kurverne for piger og drenge, så programmet angiver de korrekte grupper(tynd, mormal,fed).
> * Indsætte forskellen mellem kvinder og mænd, så programmet angiver de korrekte grupper.
> * Lave "Tooltips" så der kommer en lille vejledning frem, når man holder musen over felter og knapper.
> Det er let at lave med det fede program jeg bruger.
> * Evt. lave så teksten eller baggrunden skifter farve efter hvilken gruppe man tilhører.
> * Lave en anden farve eller et mønster på baggrunden. Lidt svært, men sjovt.
> * Skrive seriøse tekster til de forskellige grupper og nogle bemærkninger om at,
> hvis man er fed som barn er det svært at holde vægten nede som voksen.
> * Der skal være bemærkninger for dem der er for tynde(anorektisk), da det også dræber.
> * Der skal være bemærkninger om at ældre har større chance for at leve længe, hvis de har lidt fedt.
> * Jeg har også planer om en "Hjælp"-menu, der forklarer funktionerne. Der kunne også stå på siden hvor BMI-programmet er, men jeg ved ikke hvor meget arbejde i ønsker at lægge i siden.
> * Lave en kreditliste, hvor jeg nævner de kilder jeg har brugt til at lave programmet.
> * mm.
>
> Hvis i syntes at det er meget at gøre ud af det, er jeg nød til at sige følgende:
> Det er nu det begynder at blive sjovt!
>
> Uanset om i ønsker at bruge programmet, vil jeg nok prøve at få andre til at bruge det eller lægge det ud på min egen side.
>
> For det første syntes jeg allerede at programmet er for godt til at gemme for mig selv.
> For det andet har jeg godkendt en licens-aftale, som betyder at jeg ikke kan sælge programmer der er lavet i JBuilder 2008, for hvis jeg gør det, skal jeg betale 439,00 €, før skat, for programmet, hvilket er prisen for den billigste kommercielle licens.
>
> Nu har jeg en uges ferie til at arbejde på programmet i, så jeg håber at jeg har løst de fleste problemer i løbet af ugen.
> Det var vidst rigeligt for denne gang.
>
> Mvh.
> Anders
Teksten til hjemmesiden.

Du kan bare kopiere resten af denne mail direkte ind imellem to <br>
Du kan altid redigere det bagefter og lave andre farver der passer til din side.

Du skal bruge det her til din hjemmeside:

<applet
archive ="Bmi6_jar.zip"
code = "Bmi.class"
codebase = "."

name = "BMIApplet"
width = "360"
height = "460"
hspace = "10"
vspace = "10"
align = "middle"
>
<param name = "TextUnder" value = "Du er for tynd.\n\n Især hvis du er over 50 år kan det gøre dig mindre modstandsdygtig over for langvarig sygdom.\n\nJeg kan kun anbefale at du spiser mere og evtentuelt dyrker noget motion for at styrke appetitten.">

<param name = "TextNorm" value = "Du ligger i normalområdet. Vær kun glad for det.">
<param name = "Text" value = "Du er lidt overvægtig. \n\nMåske er det på tide at bevæge dig noget mere og tænke på kosten.">
<param name = "ParamText4" value = "Du er fed og hvis du vil leve længe, skal du have fart på!">
<param name = "ParamText5" value = "Du blævrer som gele i stoprmvejr!\n\nDu kan stadig nå at rette op på det, hvis du er hurtig.\n\n Løb fra det!">
<param name = "LimKUnder" value = "19.1">
<param name = "LimMUnder" value = "20.7">
<param name = "LimKNorm" value = "25.8">
<param name = "LimMNorm" value = "26.4">
<param name = "LimKMargOver" value = "27.3">
<param name = "LimMMargOver" value = "27.8">
<param name = "TextSex" value = "Mand">
<param name = "TextStatur" value = "bred">
<param name = "TxtBarnBmi" value="off">
<Param name = "PanelRGB" Value="#000000">
<Param name = "OverskriftForRGB" Value="#20a020">
<Param name = "OverskriftBagRGB" Value="#d0d0d0">

</applet><br>

_________________
Aldebaran ! Me wanna go home...


Top
 Profil  
 
Indlæg: 14 jun 2010 18:02 
Offline
Hyperaktiv
Brugeravatar

Tilmeldt: 16 maj 2010 23:43
Indlæg: 390
Geografisk sted: Danmark
Her er teksten til BMI.java i den sidste version jeg kunne finde.
Programmet er lavet i JBuilder 8 og skal sandsynligvis bruge nogle funktioner derfra for at virke, medmindre man finder og fjerner dem.
God arbejdslyst, hvis nogen ønsker at arbejde videre med programmet.

Jeg lægger hermed programmet ud i public domaim og teksten kan kopieres og videre udvikles frit, så længe fremtidige versioner ikke bringer mig eller JBuilders rettighedshavere i miskredit.

Husk at programmet i denne eller fremtidige versioner ikke må bruges kommercielt.

Jeg syntes at det er passende, hvis fremtidig kommunikation om udvikling af BMI.java sker her i forum. Det vil være en gode måde at få mit forum i gang på.

Mvh.
Anders

Kode:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
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.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
// import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.TitledBorder;
import com.swtdesigner.FocusTraversalOnArray;

public class Bmi extends Applet
{
   int voksenIndex = 2; /* kvinde*/
   int maxAlder = 100;
   int voksenAlderIndex =20;
   boolean nulstil_statur =false;
   boolean nulstil_sex=false;
   double staturPower[]={2.0, 1.8 , 2.0 , 2.2};
   double staturFaktor[]={1.0, 0.895, 1.0, 1.114};
   final String staturtxt[] = {"", " smal ", " almindelig bygget "," bred "};

   private ButtonGroup buttonGroup = new ButtonGroup();

   private static final long serialVersionUID = 1L;
   boolean isStandalone = false;
   BorderLayout borderLayout1 = new BorderLayout();
   int antalBMIgrupper = 6;
   String[]bmiGruppetxt= new String[7];
   float[][] bmigrænse= new float[2][antalBMIgrupper];

   String TxtSex;
   String TxtStatur;
   String TxtvarIntro;
   String TxtBarnBmi;
   String PanelRGB;
   String OverskriftForRGB;
   String OverskriftBagRGB;
   
   JTextField jTextField1 = new JTextField();
   JLabel jLabel2 = new JLabel();
   JLabel jLabel3 = new JLabel();
   JLabel jLabel4 = new JLabel();
   JTextField jTextField2 = new JTextField();
   JButton jButton1 = new JButton();
   JTextField jTextField3 = new JTextField();
   JLabel jLabel5 = new JLabel();
   JTextArea jTextArea1 = new JTextArea();
   TitledBorder titledBorder1 = new TitledBorder("");
   JPanel jPanel1 = new JPanel();
   JPanel jPanel2 = new JPanel();
   JPanel jPanel3 = new JPanel();
   JPanel jPanel4 = new JPanel();

   FlowLayout flowLayout1 = new FlowLayout();
   FlowLayout flowLayout2 = new FlowLayout();

   private final JPanel panelRamme = new JPanel();
   private final JRadioButton smalRadioButton = new JRadioButton();
   private final JRadioButton almindeligRadioButton = new JRadioButton();
   private final JRadioButton bredRadioButton = new JRadioButton();
   private final JPanel panelRadioRamme = new JPanel();
   private final JLabel staturLabel = new JLabel();
   private final JPanel panelAlderSexLabels = new JPanel();
   private final JLabel labelAlder = new JLabel();
   private final JLabel labelSex = new JLabel();
   private final JPanel panelAlderSexInput = new JPanel();
   private final JComboBox comboBoxAlder = new JComboBox();
   private final JComboBox comboBoxSex = new JComboBox();
   private final JScrollPane scrollPane = new JScrollPane();
   public String getParameter(String key, String def)
   {
      return ((getParameter(key) != null) ? getParameter(key) : (this.isStandalone) ? System.getProperty(key, def) : def);
   }

   public void init()
   {
      try
      {
         this.bmiGruppetxt[0] = getParameter("TextUnder", "underernæret");
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmiGruppetxt[1] = getParameter("TextNorm", "normal");
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmiGruppetxt[2] = getParameter("TextMaginFed", "marginal overvægtig");
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmiGruppetxt[3] = getParameter("TextOvervægt", "overvægtig");
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmiGruppetxt[4] = getParameter("TextFed", "fed");
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmiGruppetxt[5] = getParameter("TextExtremtFed", "ekstremt fed");
      } catch (Exception e) {
         e.printStackTrace();
      }

      try {
         this.bmigrænse[0][0] =  Float.parseFloat(getParameter("LimKUnder", "19.1"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[1][0] = Float.parseFloat(getParameter("LimMUnder", "20.7"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[0][1] = Float.parseFloat(getParameter("LimKNorm", "25.8"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[1][1] = Float.parseFloat(getParameter("LimMNorm", "26.4"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[0][2] = Float.parseFloat(getParameter("LimKMargOver", "27.3"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[1][2] = Float.parseFloat(getParameter("LimMMargOver", "27.8"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[0][3] = Float.parseFloat(getParameter("LimKOver", "32.2"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[1][3] = Float.parseFloat(getParameter("LimKOver", "31.1"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[0][4] = Float.parseFloat(getParameter("LimKFed", "44.8"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.bmigrænse[1][4] = Float.parseFloat(getParameter("LimMFed", "45.4"));
      } catch (Exception e) {
         e.printStackTrace();
      }

      try {
         this.bmigrænse[0][5] = Float.parseFloat(getParameter("LimKXtremFed", "44.8"));
      } catch (Exception e) {
         e.printStackTrace();
      }try {
         this.bmigrænse[1][5] = Float.parseFloat(getParameter("LimMXtremFed", "45.4"));
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.TxtSex = getParameter("TextSex", "Kvinde");
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.TxtStatur = getParameter("TextStatur", "norm");
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.TxtBarnBmi = getParameter("TextBarnBmi", "Off"); /* On/Off */
      } catch (Exception e) {
         e.printStackTrace();
      }   
      try {
         this.PanelRGB = getParameter("PanelRGB", "#f0f0ff"); /* #ffffff */
      } catch (Exception e) {
         e.printStackTrace();
      }      
      try {
         this.OverskriftForRGB = getParameter("OverskriftForRGB", "#2020ff"); /* #ffffff */
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.OverskriftBagRGB = getParameter("OverskriftBagRGB", "#e0e0e0"); /* #ffffff */
      } catch (Exception e) {
         e.printStackTrace();
      }
      try {
         this.TxtvarIntro = getParameter("ParamIntroTxt", "BMI siger noget om din vægt i forhold til din højde. \n\n" +
               "Følgende værdier er for kvinder af normal statur. \n\n" +
               "Hvis man vejer under " + this.bmigrænse[0][0] + " er man for tynd og hvis man ligger langt under kan det være usundt.\n" +
               "Er tallet imellem " + this.bmigrænse[0][0] + " og " + this.bmigrænse[0][1] + ", er man i normalområdet.\n" +
               "Er tallet imellem " + this.bmigrænse[0][1] + " og " + this.bmigrænse[0][2] + ", er man marginalt overvægtigt og skal være opmærksom på at vægten hellere skal ned end op.\n" +
               "Er tallet imellem " + this.bmigrænse[0][2] + " og " + this.bmigrænse[0][3] + ", er man overvægtig og skal overveje god, sund kost og mere motion.\n" +
               "Er tallet over " + this.bmigrænse[0][3] + ", er man fed og det kan anbefales at få hjælp til at komme ned på en sundere vægt, inden det går varigt ud over helbredet.\n"
         );
      }
      catch (Exception e) {
         e.printStackTrace();
      }
      try {
         jbInit();
      } catch (Exception e) {
         e.printStackTrace();
      }
      this.jTextArea1.setText(this.TxtvarIntro);
      staturInit();
      alderInit();
      sexInit();
      setPanelFarve();
      setOverskriftForFarve();
      setOverskriftBagFarve();
   }

   private void jbInit() throws Exception
   {
      setLayout(this.flowLayout1);
      jLabel2.setForeground(Color.BLUE);
      jLabel2.setOpaque(true);
      this.jLabel2.setFont(new Font("Arial Black", 0, 25));
      this.jLabel2.setToolTipText("");
      this.jLabel2.setDisplayedMnemonic('0');
      this.jLabel2.setText("Beregn dit BMI index");
      add(this.jLabel2, null);
      setBackground(Color.WHITE);
      this.jLabel3.setBackground(Color.lightGray);
      jLabel3.setIconTextGap(2);
      jLabel3.setPreferredSize(new Dimension(40, 18));
      this.jLabel3.setToolTipText("Indtast din højde her");
      this.jLabel3.setText("Højde");
      this.jLabel4.setBackground(Color.lightGray);
      jLabel4.setIconTextGap(2);
      jLabel4.setPreferredSize(new Dimension(40, 18));
      jLabel4.setMinimumSize(new Dimension(0, 0));
      this.jLabel4.setText("Vægt");

      jPanel4.add(panelAlderSexLabels);
      jPanel4.setFocusCycleRoot(true);
      jPanel4.setFocusTraversalPolicyProvider(true);
      jPanel4.setBorder(new BevelBorder(BevelBorder.RAISED));
      panelAlderSexLabels.setOpaque(false);
      panelAlderSexLabels.setBackground(Color.LIGHT_GRAY);
      final FlowLayout flowLayout_1 = new FlowLayout();
      flowLayout_1.setVgap(8);
      flowLayout_1.setAlignment(FlowLayout.LEFT);
      panelAlderSexLabels.setLayout(flowLayout_1);
      panelAlderSexLabels.setPreferredSize(new Dimension(42, 60));

      panelAlderSexLabels.add(labelSex);
      labelSex.setPreferredSize(new Dimension(35, 20));
      labelSex.setText("Køn");

      panelAlderSexLabels.add(labelAlder);
      labelAlder.setPreferredSize(new Dimension(40, 20));
      labelAlder.setText("Alder");

      jPanel4.add(panelAlderSexInput);
      panelAlderSexInput.setOpaque(false);
      panelAlderSexInput.setBackground(Color.LIGHT_GRAY);
      panelAlderSexInput.setPreferredSize(new Dimension(115, 60));

      panelAlderSexInput.add(comboBoxSex);
      comboBoxSex.setFocusCycleRoot(true);
      comboBoxSex.setFocusTraversalPolicyProvider(true);
//      comboBoxSex.addActionListener(new ComboBoxSexActionListener());
      comboBoxSex.addItemListener(new ComboBoxSexItemListener());
      comboBoxSex.setPreferredSize(new Dimension(112, 24));
      comboBoxSex.setModel(new DefaultComboBoxModel(new String[] {"Pige", "Dreng", "Kvinde", "Mand"}));

      panelAlderSexInput.add(comboBoxAlder);
      comboBoxAlder.setFocusTraversalPolicyProvider(true);
      comboBoxAlder.setMaximumRowCount(4);
      comboBoxAlder.setAutoscrolls(true);
      comboBoxAlder.addItemListener(new ComboBoxAlderItemListener());
      comboBoxAlder.setPreferredSize(new Dimension(112, 24));
      comboBoxAlder.setModel(new DefaultComboBoxModel(new String[] {"0-3", "4-10", "11-15", "16-20", "21-30", "31-40", "41-50", "51-60", "60+"}));
      this.jPanel1.setBackground(Color.lightGray);
      jPanel1.setOpaque(false);
      final FlowLayout flowLayout_2 = new FlowLayout();
      flowLayout_2.setVgap(8);
      flowLayout_2.setAlignment(FlowLayout.LEFT);
      jPanel1.setLayout(flowLayout_2);
      jPanel4.add(jPanel1);
      jPanel4.setPreferredSize(new Dimension(288, 180));
      jPanel4.setMaximumSize(new Dimension(288, 150));
      jPanel1.setMinimumSize(new Dimension(48, 54));
      jPanel1.setPreferredSize(new Dimension(42, 60));
      this.jPanel1.add(this.jLabel3);
      this.jPanel1.add(this.jLabel4);
      this.jTextField1.setBackground(new Color(230, 241, 255));
      jTextField1.setFocusTraversalPolicyProvider(true);
      this.jTextField1.setBorder(BorderFactory.createLoweredBevelBorder());
      this.jTextField1.setText("");
      this.jTextField1.setColumns(5);
      this.jTextField1.setToolTipText("Indtast et helt tal mindre end 250");
      this.jTextField2.setBackground(new Color(232, 243, 255));
      jTextField2.setFocusTraversalPolicyProvider(true);
      this.jTextField2.setBorder(BorderFactory.createLoweredBevelBorder());
      this.jTextField2.setText("");
      this.jTextField2.setColumns(5);
      this.jTextField2.setToolTipText("Indtast et helt tal mindre end 210");
      this.jPanel2.setBackground(Color.lightGray);
      jPanel2.setOpaque(false);
      jPanel2.setMaximumSize(new Dimension(50, 60));
      jPanel2.setPreferredSize(new Dimension(60, 50));
      this.jPanel4.add(this.jPanel2);
      this.jPanel2.add(this.jTextField2);
      this.jPanel2.add(this.jTextField1);

      this.jPanel4.setLayout(this.flowLayout2);
      this.jPanel4.setBackground(new Color(240, 248, 255));
      this.jPanel4.setRequestFocusEnabled(false);
      this.jPanel4.setVerifyInputWhenFocusTarget(false);
      add(this.jPanel4, null);

      jPanel4.add(panelRadioRamme);
      panelRadioRamme.setOpaque(false);
      panelRadioRamme.setBorder(new BevelBorder(BevelBorder.RAISED));
      final FlowLayout flowLayout = new FlowLayout();
      flowLayout.setVgap(1);
      flowLayout.setHgap(0);
      panelRadioRamme.setLayout(flowLayout);
      panelRadioRamme.setPreferredSize(new Dimension(284, 30));

      panelRadioRamme.add(staturLabel);
      staturLabel.setText("Statur:   ");
      smalRadioButton.setName("smalRadioButton");
      smalRadioButton.setOpaque(false);
      smalRadioButton.addActionListener(new SmalRadioButtonActionListener());
      smalRadioButton.setBackground(Color.LIGHT_GRAY);

      panelRadioRamme.add(smalRadioButton);
      buttonGroup.add(smalRadioButton);
      smalRadioButton.setText("Smal");
      almindeligRadioButton.setName("almindeligRadioButton");
      almindeligRadioButton.setOpaque(false);
      almindeligRadioButton.addActionListener(new AlmindeligRadioButtonActionListener());
      almindeligRadioButton.setSelected(true);
      almindeligRadioButton.setBackground(Color.LIGHT_GRAY);

      panelRadioRamme.add(almindeligRadioButton);
      buttonGroup.add(almindeligRadioButton);
      almindeligRadioButton.setText("Almindelig");
      bredRadioButton.setName("bredRadioButton");
      bredRadioButton.setOpaque(false);
      bredRadioButton.addActionListener(new BredRadioButtonActionListener());
      bredRadioButton.setBackground(Color.LIGHT_GRAY);

      panelRadioRamme.add(bredRadioButton);
      buttonGroup.add(bredRadioButton);
      bredRadioButton.setText("Bred");

      jPanel4.add(panelRamme);
      panelRamme.setOpaque(false);
      panelRamme.setPreferredSize(new Dimension(160, 70));
      panelRamme.setMaximumSize(new Dimension(100, 120));
      panelRamme.setBackground(Color.LIGHT_GRAY);
      this.jButton1.setToolTipText("Copyright ALO");
      panelRamme.add(jButton1);
      this.jButton1.setActionCommand("Beregn");
      this.jButton1.setText("Beregn BMI");
      this.jButton1.addMouseListener(new Bmi_jButton1_mouseAdapter(this));
      this.jLabel5.setToolTipText("");
      jPanel3.add(jLabel5);
      jPanel3.setOpaque(false);
      panelRamme.add(jPanel3);
      this.jLabel5.setText("Dit BMI index er:");
      this.jTextField3.setBackground(new Color(255, 255, 201));
      this.jTextField3.setBorder(BorderFactory.createLoweredBevelBorder());
      this.jTextField3.setMinimumSize(new Dimension(44, 19));
      this.jTextField3.setToolTipText("Her står dit bodymass index");
      this.jTextField3.setText("");
      this.jTextField3.setColumns(5);
      this.jPanel3.setBackground(Color.lightGray);
      this.jPanel3.add(this.jTextField3);
      jPanel4.setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[] {panelAlderSexLabels, comboBoxSex, comboBoxAlder, jTextField2, jTextField1, smalRadioButton, almindeligRadioButton, bredRadioButton, jButton1}));

      add(scrollPane);
      scrollPane.setPreferredSize(new Dimension(288, 200));
      this.jTextArea1.setBackground(new Color(245, 245, 245));
      jTextArea1.setMaximumSize(new Dimension(288, 1024));
      scrollPane.setViewportView(jTextArea1);
      this.jTextArea1.setEditable(true);
      this.jTextArea1.setBorder(BorderFactory.createLoweredBevelBorder());
      this.jTextArea1.setMinimumSize(new Dimension(288, 200));
      this.jTextArea1.setPreferredSize(new Dimension(288, 400));
      this.jTextArea1.setInputVerifier(null);
      this.jTextArea1.setText("");
      this.jTextArea1.setLineWrap(true);
      this.jTextArea1.setWrapStyleWord(true);
   }

   public String getAppletInfo()
   {
      return "Applet Information";
   }

   public String[][] getParameterInfo()
   {
      String[][] pinfo = {
            { "TextUnder", "String", "Txt=underernæret" },
            { "TextNorm", "String", "Txt=normal" },
            { "TextMaginFed", "String", "Txt=marginal overvægtig" },
            { "TextFed", "String", "Txt=fed" },
            { "TextMegetFed", "String", "Txt=meget fed" },
            { "TextExtremtFed", "String", "Txt=ekstremt fed" },
            { "LimKUnder", "float", "Kommatal: Så er man en udsultet kvinde" },
            { "LimMUnder", "float", "Kommatal: Så er man en udsultet mand" },
            { "LimKNorm",  "float", "Kommatal: Så er man en normal kvinde" },
            { "LimMNorm",  "float", "Kommatal: Så er man en normal mand" },
            { "LimKMargOver", "float", "Kommatal: Så er man en marginalt overvægtig kvinde" },
            { "LimMMargOver", "float", "Kommatal: Så er man en marginalt overvægtig mand" },
            { "LimKOver", "float", "Kommatal: Så er man en overvægtig kvinde" },
            { "LimMOver", "float", "Kommatal: Så er man en overvægtig mand" },
            { "LimKFed", "float", "Kommatal: Så er man en fed kvinde" },
            { "LimMFed", "float", "Kommatal: Så er man en fed mand" },
            { "LimKXtremFed", "float", "Kommatal: Så er man en ekstremt fed kvinde" },
            { "LimMXtremFed", "float", "Kommatal: Så er man en ekstremt fed mand" },
            { "TextSex", "String", "Køn, En af: Pige, Dreng, Kvinde, Mand" }, /* Default:"Kvinde" */
            { "TextStatur", "String", "Statur,En af: smal, norm, bred" }, /* Default: "norm" */
            { "TextBarnBmi", "String", "Tænd/sluk for BMI for børn: On, Off" }, /* Default: "Off" */
            { "ParamIntroTxt", "String", "Beskriv BMI. Starttekst i det store tekstfelt" },
            { "PanelRGB", "String", "Hextal for RGB-farve fx. #f0f0f0" },
            { "OverskriftForRGB", "String", "Hextal for RGB-farve fx. #1010ff" },
            { "OverskriftBagRGB", "String", "Hextal for RGB-farve fx. #f0f0f0" }};

      return pinfo;
   }

   public void setPanelFarve(){
      if(PanelRGB !="")
      {
         if(PanelRGB.length()==7){
            if(PanelRGB.startsWith("#")){
               jPanel2.setBackground(Color.decode(PanelRGB));
            }
         }
      }

   }
   public void setOverskriftForFarve(){
      if(OverskriftForRGB !="")
      {
         if(OverskriftForRGB.length()==7){
            if(OverskriftForRGB.startsWith("#")){
               jLabel2.setForeground(Color.decode(OverskriftForRGB));
            }
         }
      }

   }
   public void setOverskriftBagFarve(){
      if(OverskriftBagRGB !="")
      {
         if(OverskriftBagRGB.length()==7){
            if(OverskriftBagRGB.startsWith("#")){
               jLabel2.setBackground(Color.decode(OverskriftBagRGB));
            }
         }
      }

   }
   
   
   public void staturInit(){
      if (!nulstil_statur){
         if ( TxtStatur.compareTo("smal") == 0){
            smalRadioButton.doClick();
            smalRadioButton.setSelected(true);
            }       
         if ( TxtStatur.compareTo("norm") == 0){
            almindeligRadioButton.doClick();
            almindeligRadioButton.setSelected(true);
            }       
         if ( TxtStatur.compareTo("bred") == 0){
            bredRadioButton.doClick();
            bredRadioButton.setSelected(true);
            }
         nulstil_statur = true;          /* Det skal kun gøres en gang. */
      }
   }
   
   public void sexInit(){
      /* (v.compareTo("bmi")==0) */
      if(!nulstil_sex){
         if ( TxtSex.compareTo("Pige") == 0){
            comboBoxSex.setSelectedIndex(0);
         }
         if ( TxtSex.compareTo("Dreng") == 0){
            comboBoxSex.setSelectedIndex(1);
         }        
         if ( TxtSex.compareTo("Kvinde") == 0){
            comboBoxSex.setSelectedIndex(2);
         } 
         if ( TxtSex.compareTo("Mand") == 0){
            comboBoxSex.setSelectedIndex(3);
         }
      }
   }   
   public void alderInit(){

      if(!nulstil_sex){
         
         String aldreIListe[]= new String[maxAlder];
         for(int i =0; i <maxAlder;i++){
            aldreIListe[i] = Integer.toString(i);
         }
            
               
         comboBoxAlder.setModel(new DefaultComboBoxModel( (Object[]) aldreIListe));
                     
      }
   }
   public float beregnBmi( int vægt, int højde){
      float bmital;
      double bmi_1 = staturFaktor[0] *(double)vægt / Math.pow((double)højde/100 , staturPower[0]);
      bmi_1 *= 10.0F;
      bmital = (int)bmi_1;
      bmital /= 10.0F;

      return(bmital);
   }

   public int findVoksenBmigruppe(float bmi, int sex){
      int index=0;
      String tegn;
      double alderBMI;
      double gruppeprocent[]= new double[2];
      double grænseflyt[] = new double[2];
      
      double aldersfaktor=7.1;
      double aldersprocent = 0.0;
      int alder = this.comboBoxAlder.getSelectedIndex();
      
      grænseflyt[0] =0.484375; // Kvinder
      gruppeprocent[0]= 25.6;

      grænseflyt[1] =0.619496; // Kvinder
      gruppeprocent[1]= 15.9;
      
      aldersfaktor = (( voksenAlderIndex - (double)alder)/((double)80 - voksenAlderIndex ));

      alderBMI = bmi * ((100 + gruppeprocent[sex] * aldersfaktor)/100);
   
      while ( index < antalBMIgrupper -1 & alderBMI + 0.1 >  this.bmigrænse[sex][index]){

         alderBMI =bmi * ((100 + gruppeprocent[sex] * aldersfaktor)/100);

         gruppeprocent[sex] *= grænseflyt[sex];// halveres ca, mellem hver grænse over første.

         index++;
         
      }
      aldersprocent = (((double)bmi - alderBMI)/(double)bmi) * 100.0d;
      
      float tmp= (float)((int)(aldersprocent*10)) /10f;
      
      if (tmp>=0){
         tegn="+";}
      else{
         tegn="";
      }

      this.jTextArea1.setText("Statur, alder og køn gør at BMI må være " + tegn + tmp + "%.\n" );
      return(index);

   }
   public int findBørneBmigruppe(float bmi, int sex){/*  skal senere finde børnebmigruppe i tabel*/
      

      return(findVoksenBmigruppe(bmi, sex)); /*Dummy så programmet virker*/
   }

   public void setServicemode(){
      /* viser parametre i bmivindue */
      /* Indtast i bmi textfeltet og få svar i tekstarea */
      {
         jLabel2.setText("BMI servicemode");
         jLabel3.setText("Mode");
         labelAlder.setText("Param");
         jLabel4.setText("Værdi");
         comboBoxSex.setModel(new DefaultComboBoxModel(new String[] {"Vis", "Set"}));
         labelSex.setText("Vælg");
         jLabel5.setText("Indtast værdi");
         jButton1.setText("Vis data");
         
         String Parameter[][]=getParameterInfo();
         int antal=Parameter.length;
         
         String[] Pnavn=new String[antal];
         
         for(int i=0 ; i<antal ;i++){
            Pnavn[i]=Parameter[i][0];
         }
         comboBoxAlder.setModel(new DefaultComboBoxModel(Pnavn));
         
         jTextArea1.setText("Velkommen til servicemode.\n\n" +
               "Her kan du se information om de parametre du skal bruge til at styre "+
               "programmet når det ligger på din hjemmeside som Applet.\n\n" +"" +
               "Ind til videre er det kun \"Vis\" der virker, men jeg skulle gerne ubygge"+
               "så man kan teste parametre i programmet, mens det kører. Fx. skifte farve på"+
               "på baggrunden eller låse BMI for børn.\n\n"+
               "Når du skal angive en værdi på hjemmesiden, skal du skrive\n"+
               " <param name=\"paramnavn\" value=\"tal/tekst\"> \n\n");
      }
   }  public void visParam(int index){
      /* viser parametre i bmivindue */
      /* Indtast i bmi textfeltet og få svar i tekstarea */
      
      String Parameter[][]=getParameterInfo();
      int antal=Parameter.length;
      jTextArea1.setText("");
      if (index==-1){
         for(int i=0 ; i<antal-1 ;i++){
            jTextArea1.setText(jTextArea1.getText()+ Parameter[i][0] + ", ");
         }
         jTextArea1.setText(jTextArea1.getText()+ Parameter[antal-1][0]);
      }
      else{
      jTextArea1.setText("Parameternavn:    " + Parameter[index][0] + "\n" +
            "Variabeltype:     " + Parameter[index][1] + "\n" +
            "Beskrivelse: " + Parameter[index][2] + "\n\n"
            );
      }
      
   }
   public void setParam(String input){
      /* instiller udvalgte parametre via bmivindue */
   } 
   public void reset(String input){
      /* instiller udvalgte parametre via bmivindue */
      jLabel2.setText("Beregn dit BMI index");
      jLabel3.setText("Højde");
      labelAlder.setText("Alder");
      jLabel4.setText("Vægt");
      comboBoxSex.setModel(new DefaultComboBoxModel(new String[] {"Pige", "Dreng", "Kvinde","Mand"}));
      labelSex.setText("Køn");
      jLabel5.setText("Dit BMI index er:");
      jButton1.setText("Beregn BMI");
      alderInit();
      this.jTextArea1.setText(this.TxtvarIntro);
      this.jTextArea1.replaceRange("", 0, 0);
   }

   public void jButton1_mouseClicked(MouseEvent e)
   {
      int vaegt;
      int hoejde;
      int fejl = 0;
      String h = this.jTextField2.getText();/* højde */
      String v = this.jTextField1.getText();/* Vægt er nu Mode: "service" parameter */
      
      if (h.compareTo("service")==0){
         setServicemode();

         if (v.compareTo("bmi")==0){
            reset(""); /* nulstil */
         }
         if(v.compareTo("visparam")==0){
            setServicemode();
            visParam(0); /* vis den første */
         }
         if(v.compareTo("visall")==0){
            setServicemode();
            visParam(-1);
         }
         if(v.compareTo("setparam")==0){
            setServicemode();
            setParam(this.jTextField3.getText());
         }
         
      }

      else{
         try
         {
            h = this.jTextField2.getText();/* højde */
            this.jTextField3.setText("0");
            this.jTextArea1.setText("");

            hoejde = Integer.parseInt(h);
         } catch (Exception ex) {
            this.jTextArea1.setText(this.jTextArea1.getText() + "Højden skal være et helt, positivt tal.\n");

            hoejde = 0;
            fejl = 1;
            ex.printStackTrace();
            this.jTextField2.setText("");
         }
         if (hoejde < 0) {
            this.jTextArea1.setText(this.jTextArea1.getText() + "Højen skal være et positivt tal.\n");

            hoejde = 0;
            fejl = 1;
         }
         if (hoejde > 210)
            this.jTextArea1.setText(this.jTextArea1.getText() + "Det er en meget høj person.\n");

         try
         {
            v = this.jTextField1.getText();
            vaegt = Integer.parseInt(v);
         } catch (Exception ex) {
            this.jTextArea1.setText(this.jTextArea1.getText() + "Vægten skal være et helt, positivt tal.\n");

            vaegt = 0;
            fejl = 1;
            ex.printStackTrace();
            this.jTextField1.setText("");
         }
         if (vaegt < 0) {
            this.jTextArea1.setText(this.jTextArea1.getText() + "Vægten skal være et positivt tal.\n");

            vaegt = 0;
            fejl = 1;
         }

         if (vaegt > 250) {
            this.jTextArea1.setText(this.jTextArea1.getText() + "Det er en meget tung person.\n");

            vaegt = 0;
            fejl = 1;
         }


         /* Her regnes bmi værdien ud! */
         if (fejl == 0) {
            float bmital= beregnBmi(vaegt,hoejde);
            int bmigruppe=1;
            this.jTextField3.setText(String.valueOf(bmital));

            /* Bmi gruppe for voksne findes med faste grænser*/
            if (comboBoxSex.getSelectedIndex() > 1){
               bmigruppe =findVoksenBmigruppe( bmital, comboBoxSex.getSelectedIndex()%2 );
            }
            else  {// Skal senere ændres til børneBmi !!!!!
               this.jTextArea1.setText(this.jTextArea1.getText() + "BMI for børn er upræcise!\n\n");

               bmigruppe =findBørneBmigruppe( bmital, comboBoxSex.getSelectedIndex()%2 );/* Bmigruppe for børn findes i tabel*/
            }
            this.jTextArea1.setText(this.jTextArea1.getText() + this.bmiGruppetxt[bmigruppe]);
         }
         else
         {
            this.jTextArea1.setText(this.jTextArea1.getText() + "\n\n Prøv igen.");

            fejl = 0;
         }
         this.jTextArea1.setText(this.jTextArea1.getText() + "\nDet er en " +
               staturtxt[0] +
               comboBoxSex.getItemAt(comboBoxSex.getSelectedIndex())+ " på "+
               comboBoxAlder.getItemAt(comboBoxAlder.getSelectedIndex()) + " år.");
      }
   }

   public Bmi() {
      super();
   }
   private class ComboBoxSexItemListener implements ItemListener {
      public void itemStateChanged(ItemEvent e) {
         comboBoxSex_itemStateChanged(e);
      }
   }
   private class ComboBoxAlderItemListener implements ItemListener {
      public void itemStateChanged(ItemEvent e) {
         comboBoxAlder_itemStateChanged(e);
      }
   }
   private class SmalRadioButtonActionListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {
         smalRadioButton_actionPerformed(e);
      }
   }
   private class AlmindeligRadioButtonActionListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {
         almindeligRadioButton_actionPerformed(e);
      }
   }
   private class BredRadioButtonActionListener implements ActionListener {
      public void actionPerformed(ActionEvent e) {
         bredRadioButton_actionPerformed(e);
      }
   }


   protected void comboBoxSex_itemStateChanged(ItemEvent e) {

      int sexIndex = comboBoxSex.getSelectedIndex();
      int alderIndex = comboBoxAlder.getSelectedIndex();
      
         /* True= Vi er Ikke i service mode */
      if( "service".compareTo(jTextField2.getText())!=0){

         /*
          * Tjek for om børneBMI er tilladt
          * */
         if(TxtBarnBmi =="Off"){
            if(sexIndex < voksenIndex){
               comboBoxSex.setSelectedIndex(voksenIndex);
               this.jTextArea1.setText("Der er slukket for at beregne BMI for børn. \n\n" +
               "Kontakt Webmaster for mere information.");
               alderIndex = comboBoxAlder.getSelectedIndex();
            }   
         }      /*
          * tjek for voksen og ret hvis alder er forkert
          *
          */

         if(sexIndex < voksenIndex){
            if(alderIndex>=voksenAlderIndex ){
               comboBoxAlder.setSelectedIndex(voksenAlderIndex - 1);
            }
            else
            {}
         }
         else{  /* sexIndex er en voksenværdi */
            if(alderIndex < voksenAlderIndex){
               comboBoxAlder.setSelectedIndex(voksenAlderIndex);
            }
         }
      }
   }
   protected void comboBoxAlder_itemStateChanged(ItemEvent e) {

      int sexIndex = comboBoxSex.getSelectedIndex();
      int alderIndex = comboBoxAlder.getSelectedIndex();

      if("service".compareTo(jTextField2.getText())==0){
         /* Vi er i service mode */
         if(sexIndex==0){ /* vis*/
            visParam(alderIndex);
         }
         if(sexIndex==1){ /* Set */
            /*Skal laves så man gemmer værdi i parameter
             * hent værdi i bmi-resultatfeltet og findparameteren i pinfo[][]
             * */
         }
      }
      /*
       * Tjek for om børneBMI er tilladt
       * */
      else{
         if(TxtBarnBmi =="Off"){
            if(alderIndex < voksenAlderIndex){
               comboBoxAlder.setSelectedIndex(voksenAlderIndex);
               this.jTextArea1.setText("Der er slukket for at beregne BMI for børn. \n\n" +
               "Kontakt Webmaster for mere information.");
               alderIndex = comboBoxAlder.getSelectedIndex();
            }   
         }
         /*
          * tjek for voksen og ret hvis alder er forkert
          *
          */
         if(alderIndex < voksenAlderIndex){/* alder er et barn*/
            if(sexIndex >= voksenIndex ){
               comboBoxSex.setSelectedIndex(sexIndex - 2);
            }
            else
            {}
         }
         else{  /* alderIndex er en voksenværdi */
            if(sexIndex < voksenIndex){
               comboBoxSex.setSelectedIndex(sexIndex + 2);
            }
         }
      }      
   }
   protected void smalRadioButton_actionPerformed(ActionEvent e) {
      staturPower[0]=staturPower[1];
      staturtxt[0]=staturtxt[1];
      staturFaktor[0] = staturFaktor[1];
   }
   protected void almindeligRadioButton_actionPerformed(ActionEvent e) {
      staturPower[0]=staturPower[2];
      staturtxt[0]=staturtxt[2];
      staturFaktor[0] = staturFaktor[2];
   }
   protected void bredRadioButton_actionPerformed(ActionEvent e) {
      staturPower[0]=staturPower[3];
      staturtxt[0]=staturtxt[3];
      staturFaktor[0] = staturFaktor[3];
   }
}

_________________
Aldebaran ! Me wanna go home...


Top
 Profil  
 
Vis indlæg fra foregående:  Sorter efter  
Skriv nyt emne Svar på emne  [ 2 indlæg ] 

Alle tider er UTC + 1 time


Hvem er online

Brugere der læser dette forum: Ingen tilmeldte og 1 gæst


Du kan ikke skrive nye emner
Du kan ikke besvare emner
Du kan ikke redigere dine indlæg
Du kan ikke slette dine indlæg
Du kan ikke vedhæfte filer

Søg efter:
Hop til:  
cron
POWERED_BY
Danish translation & support by Olympus DK Team