![]() |
| | #1 (permalink) | ||
| Registered User Join Date: Mar 2006 Location: Timisoara | culoare background random in java
am nevoie de un program care in momentul in care apas pe butonul start, incepe sa schimbe imaginea de fundal cu culori random. cam aici am ajuns : import java.awt.*; // import clase import java.awt.event.*; // awt si import java.applet.Applet; // applet public class Imag extends Applet implements ActionListener{ // declaratie clasa private boolean a=false; // comutare buton private Button b; // obiect buton private Image im; // obiect imagine public void init(){ // metoda initializare add(b=new Button("Start")); // adaugare buton in applet b.addActionListener(this); // alocare actiune } public void paint(Graphics g){ // metoda paint this.setBackground(Color.black:Color.white); // setare fond if(!a) this.setBackground(Color.red);// mesaj initial else if(a) this.setBackground(Color.white);; // afisare imagine } public void actionPerformed(ActionEvent e){ // metoda tratare actiuni Object sr=e.getSource(); // obiect receptor actiuni while(true){ // bucla asteptare actiune if(sr==b && a==false){ // apasare buton Start a=true; // setare comutator b.setLabel("Stop"); // modificare eticheta buton repaint(); // reafisare applet break; // iesire din bucla } else if(sr==b && a==true){ // apasare buton Stop a=false; // setare comutator b.setLabel("Start"); // modificare eticheta buton repaint(); // reafisare applet break; // iesire din bucla } } } } | ||
|
| | #2 (permalink) | ||
|
Ca practică, în loc să foloseşti un comutator în plus (acel "a") te poţi ghida după eticheta butonului: [CODE]public void actionPerformed(ActionEvent e){ // metoda tratare actiuni Object sr=e.getSource(); // obiect receptor actiuni while(true){ // bucla asteptare actiune if(sr==b && b.getLabel().equals("Start")){ // apasare buton Start b.setLabel("Stop"); // modificare eticheta buton repaint(); // reafisare applet break; // iesire din bucla } else if(sr==b && b.getLabel().equals("Stop")){ // apasare buton Stop b.setLabel("Start"); // modificare eticheta buton repaint(); // reafisare applet break; // iesire din bucla } } }[/CODE] Pentru culori random îţi trebuie trei întregi random, câte unul pentru fiecare componentă RGB. Apoi cu aceşti întregi generaţi random, generezi culoarea (vezi că ai nişte constructori specifici: Color(int r, int g, int b) - Creates an opaque sRGB color with the specified red, green, and blue values in the range (0 - 255).) şi setezi background-ul. [CODE]int redComponent = (int) (Math.random() * 255); int greenComponent = (int) (Math.random() * 255); int blueComponent = (int) (Math.random() * 255); Color c = new Color (redComponent, greenComponent, blueComponent); setBackground(c);[/CODE] Nu prea mai sunt pus la punct cu applet-urile, dar nu cred că îţi trebuie acea buclă "while".
__________________ d*L*b | |||
|
![]() |
|
| Thread Tools | |
|
|