Computer Games Forum
 

Go Back   Computer Games Forum > Tech > The Workshop > Limbaje de programare

Notices

Căutare produse PC Garage: Şterge căutarea

Reply
 
LinkBack Thread Tools
Old 05-02-2007, 23:50   #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
}

}
}
}
 
mcduru is offline    Reply With Quote
Old 07-02-2007, 14:28   #2 (permalink)
Bean Bachine
 
Comanche's Avatar
 
Join Date: Sep 2004
Location: Bucuresti
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
 
Comanche is offline    Reply With Quote
Old 07-02-2007, 17:17   #3 (permalink)
Registered User
 
Join Date: Mar 2006
Location: Timisoara
mersi mult de raspuns, l-am gasit cu vreo 2 ore inainte sa postezi
 
mcduru is offline    Reply With Quote
Advertisment
Reply

  Computer Games Forum > Tech > The Workshop > Limbaje de programare

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT +2. The time now is 06:34.


Advertisement System V2.5 By   Branden
This site is copyrighted ©1997 - 2008, Computer Games Online SRL