08. november 2001 - 20:34
#6
Jeg forstår desværre ikke helt hvad du mener, men her er de klasser der skal kommunikerer sammen:
Dem der skal kommunikerer sammen er Ffelt og Fscroll, så man ved hjælp af Fscroll kan ændre på farverne på Ffelt til højre, det er nemmere at compile og se hvad jeg mener :=)...
Farvesjov:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import Ffelt;
import Fscroll;
public class Farvesjov extends Applet{
//TextArea her bliver der fortalt om du har svarede rigtigt
TextArea svar;
//Felter med farve
Ffelt show;
Ffelt guess;
//Tegner Scrollbars og farvede felter --- opretter plads i hukommelsen
Fscroll scrollR;
Fscroll scrollG;
Fscroll scrollB;
//til random
int r;
int g;
int b;
//De farver brugeren mixer sammen
public int userR;
public int userG;
public int userB;
//knapper
Button start;
Button check;
Button opgiv;
public void init(){
setLayout(null);
setSize(400,350);
setBackground(Color.lightGray);
setForeground(Color.black);
cs();
}
public void cs(){
//random
r=(int)(Math.random()*256);
g=(int)(Math.random()*256);
b=(int)(Math.random()*256);
//Start knap
start = new Button();
start.setBounds(10,310,185,30);
start.setLabel(\"Start\");
start.setVisible(false);
start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
r=(int)(Math.random()*256);
g=(int)(Math.random()*256);
b=(int)(Math.random()*256);
guess.setFarve(r,g,b);
guess.setFarve(r,g,b);
start.setVisible(false);
check.setVisible(true);
opgiv.setEnabled(true);
}
});
add(start);
//Check knap
check = new Button();
check.setBounds(10,310,185,30);
check.setLabel(\"Check\");
check.setVisible(true);
check.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
start.setVisible(true);
check.setVisible(false);
//Funktion som checker for om det er rigtigt.
}
});
add(check);
//Givop knap
opgiv = new Button();
opgiv.setBounds(205,310,185,30);
opgiv.setLabel(\"opgiv\");
opgiv.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
opgiv.setEnabled(false);
start.setVisible(true);
svar.setText(\"De farve som du skulle finde var:\\nRød = \" + r + \"\\nGrøn = \" + g + \"\\nBlå = \" + b + \"\\n\\nBedre held næste gang :=)\");
}
});
add(opgiv);
//Show viser den nuværende farve
show = new Ffelt();
show.setBounds(250,10,140,140);
show.setFarve(0,0,0);
add(show);
//guess viser den farve du skal gætte
guess = new Ffelt();
guess.setBounds(250,160,140,140);
guess.setFarve(r,g,b);
add(guess);
//Textarea der viser om man har svarede rigtigt
svar = new TextArea(\"\",0,0,3);
svar.setBounds(10,90,230,210);
svar.setBackground(Color.lightGray);
svar.setText(\"Hvis det er første gang du bruger dette program skal du nok lige læse denne tekst.\\n Programmet skal lærer dig at kende farve, til højre for denne kasse finder du 2 farvede felter det øverste kan du stille på mens det nederste er statisk, det går så ud på at bruge scrollbarsne der hver stmboliserer en farve til at finde ud af den rigtig kombination af rød,grøn og blå når du har gjort det skal du trykke på svar.\\n Godfornøjelse :=)\");
add(svar);
//Fscroll for Rød.
scrollR = new Fscroll(255,0,0,\"r\");
scrollR.setBounds(10,10,230,30);
add(scrollR);
//Fscroll for Grøn.
scrollR = new Fscroll(0,255,0,\"g\");
scrollR.setBounds(10,35,230,30);
add(scrollR);
//Fscroll for Blå.
scrollR = new Fscroll(0,0,255,\"b\");
scrollR.setBounds(10,60,230,30);
add(scrollR);
}
//Funktioner til kommunikation
public void setRed(int newr){
show.setRed(newr);
userR = newr;
}
public void setGreen(int newg){
show.setGreen(newg);
userG = newg;
}
public void setBlue(int newb){
show.setGreen(newb);
userB = newb;
}
}
Ffelt:
import java.awt.*;
public class Ffelt extends Canvas{
int r;
int g;
int b;
public Ffelt(){}
public void setFarve (int newr,int newg,int newb){
r = newr;
g = newg;
b = newb;
this.setBackground(new Color(r,g,b));
}
public void setRed(int newr){
r = newr;
this.setBackground(new Color(r,g,b));
}
public void setGreen(int newg){
g = newg;
this.setBackground(new Color(r,g,b));
}
public void setBlue(int newb){
b = newb;
this.setBackground(new Color(r,g,b));
}
}
Fscroll:
import java.awt.*;
import java.awt.event.*;
import Ffelt;
import Farvesjov;
public class Fscroll extends Panel implements AdjustmentListener {
public Ffelt tis;
int r;
int g;
int b;
String ColorS = new String(\"null\");
Scrollbar sc;
public Fscroll(int newR, int newG, int newB, String selectC){
this.setLayout(null);
this.setSize(100,30);
this.setBackground(Color.lightGray);
r= newR;
g = newG;
b = newB;
ColorS = selectC;
sc = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 255);
sc.setBounds(5,5,175,20);
add(sc);
sc.addAdjustmentListener(this);
tis = new Ffelt();
tis.setBounds(185,5,35,20);
tis.setFarve(r,g,b);
add(tis);
}
public void adjustmentValueChanged(AdjustmentEvent e) {
/*/switch (ColorS){
case \"r\":
r = 255 - sc.getValue();
case \"g\":
g = 255 - sc.getValue();
case \"b\":
b = 255 - sc.getValue();
}/*/
if (ColorS == \"r\"){
r = 255 - sc.getValue();
//farve.setRed(r);
}
else if (ColorS == \"g\"){
g = 255 - sc.getValue();
//farve.setGreen(g);
}
else if(ColorS == \"b\"){
b = 255 - sc.getValue();
//farve.setBlue(b);
}
tis.setFarve(r,g,b);
}
}