02. juni 2004 - 20:39Der er
10 kommentarer og 1 løsning
Tegne simpel grafik i Applet
Hej alle, jeg sidder og lægger sidste hånd på et af mine eksamensprojekter, men har svært ved at få tegnet noget grafik. Sagen er at jeg udvikler en BMI-beregner som en applet, der skal være i stand til at tegne en figur for undervægtighed, overvægtighed etc. Dvs. hvis BMI-tallet klassificeres som overvægtighed, så skal der f.eks. tegnes en fyldt ellipse i en canvas etc. Håber der er nogen der kan give en løsning på dette..... en virkelig god løsning giver jeg 60 point for!
Panel lp = new Panel(); Panel vp = new Panel(); Panel mp = new Panel();
højdeFelt = new TextField(4); vægtFelt = new TextField(3); lp.add(new Label("Højde i meter (fx 1.82):")); lp.add(højdeFelt);
vp.add(new Label("Vægt i kilo:")); vp.add(vægtFelt); højdeFelt.addActionListener(this); vægtFelt.addActionListener(this);
meddel1 = new Label("Skriv din højde og vægt i tekstfelterne!"); meddel2 = new Label("BMI-værdien og et udsagn udregnes og udskrives"); //omdome = new Label(); //add(omdome); mp.add(meddel1); mp.add(meddel2);
add(lp); add(vp); add(mp);
play(getDocumentBase(),"BlueDust.au"); //Afspil lyd ved opstart vægtklasse = getImage(getCodeBase(),"nok1.jpg"); }
void SetUpMainMenu() { MenuBar theMenuBar; Menu theMainMenu;
theMenuBar = new MenuBar(); theMainMenu = new Menu("Print");
//Tag højde for hvis brugeren har indtastet bogstaver i stedet for tal, eller helt undlader at taste i felterne catch (NumberFormatException ex) { meddel1.setText("Fejlagtig indtastning, forsøg igen!"); meddel2.setText(""); } } /*public void paint(Graphics g) { g.drawImage(baggrund, 0, 25, this); }*/
I et inbound callcenter, hvor identiteten på den, der ringer ind, skal bekræftes, kan kontrollen nu foregå i telefonkøen. Det understøtter fem centrale KPI'er for callcentre.
højdeFelt = new TextField(4); vægtFelt = new TextField(3); lp.add(new Label("Højde i meter (fx 1.82):")); lp.add(højdeFelt);
vp.add(new Label("Vægt i kilo:")); vp.add(vægtFelt); højdeFelt.addActionListener(this); vægtFelt.addActionListener(this);
meddel1 = new Label("Skriv din højde og vægt i tekstfelterne!"); meddel2 = new Label("BMI-værdien og et udsagn udregnes og udskrives"); //omdome = new Label(); //add(omdome); mp.add(meddel1); mp.add(meddel2);
add(lp); add(vp); add(mp);
play(getDocumentBase(),"BlueDust.au"); //Afspil lyd ved opstart vægtklasse = getImage(getCodeBase(),"nok1.jpg"); }
void SetUpMainMenu() { MenuBar theMenuBar; Menu theMainMenu;
theMenuBar = new MenuBar(); theMainMenu = new Menu("Print");
Graphics g = vp.getGraphics(); vp.update(g); g.setColor(Color.red); int width = (int)bmi *2; int x = vp.getWidth() - 50 - (width / 2); g.fillOval(x, 0, width , vp.getHeight()); }
//Tag højde for hvis brugeren har indtastet bogstaver i stedet for tal, eller helt undlader at taste i felterne catch (NumberFormatException ex) { Graphics g = vp.getGraphics(); vp.update(g); meddel1.setText("Fejlagtig indtastning, forsøg igen!"); meddel2.setText(""); } }
Mange tak for den hurtige respons! Nu er det ikke lige grafik i Java jeg er hård til, så mit ønske er egentlig at ellipsen ikke ændres i størrelse alt efter hvor høj el. lav BMI-tallet er. Mit ønske er nogle statiske figurer, dvs. en ellipse for overvægt, rektangel for normalvægt, bolle for svært overvægtig... kan du (Carsten) / I det? Se i øvrigt bort fra menu-koden. Måske det ville være lettere i en JApplet?
Carsten - mange tak! Ved du om det er simpelt at lave en dialog (eller andet), der starter med at vise figurerne for brugeren, så denne ved hvad de betyder? -- Du får dine point
Tusinde tak!! Jeg kan dog imidlertid ikke få den linie i init() til at fungere...? Er det muligt du kan knytte kommentarer til den klasse du lige har givet mig? :-) Håber ikke det er til for meget besvær...
Jeg fik det dog til at køre - ud fra samme linie du har foreslået. Jeg sidder og finpudser GUI'en, men er stærkt i tvivl om GridLayout nu også er det rigtige valg... Jeg kaster lige min kode ind, hvis der nu skulle være nogen der har lyst til at forbedre GUI'en stærkt. Komponenternes positioner stinker nemlig lidt, ligeledes hvor figuren positioneres osv. Det ER så det sidste ;o)...
højdeFelt = new TextField(4); vægtFelt = new TextField(3); lp.add(new Label("Højde i meter (fx 1.82):")); lp.add(højdeFelt);
//vp.add(new Label("Vægt i kilo:")); //vp.add(vægtFelt); lp.add(new Label("Vægt i kilo:")); lp.add(vægtFelt); højdeFelt.addActionListener(this); vægtFelt.addActionListener(this);
meddel1 = new Label("Skriv din højde og vægt i tekstfelterne!"); meddel2 = new Label("BMI-værdien og et udsagn udregnes og udskrives"); //omdome = new Label(); //add(omdome);
NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(1); meddel1.setText("Dit BMI er " + nf.format(bmi)); meddel2.setText("hvilket betyder " + omdømme); //udskriv omdømmet }
//Tag højde for hvis brugeren har indtastet bogstaver i stedet for tal, eller helt undlader at taste i felterne catch (NumberFormatException ex) { //Graphics g = vp.getGraphics(); lp.update(g); meddel1.setText("Fejlagtig indtastning, forsøg igen!"); meddel2.setText(""); } } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.