Olá,
Estou tentando fazer um alvo com duas cores aleatórias alternativas.
Poderiam me dá ideias de como fazer ?
Olá,
Estou tentando fazer um alvo com duas cores aleatórias alternativas.
Poderiam me dá ideias de como fazer ?
Existem várias maneiras de se fazer isso. O que exatamente você está tentando fazer?
Você pode usar o gerador aleatório java.util.Random para gerar números e criar novas instâncias de Color, passando a intensidade de vermelho, verde e azul que deseja.
Olá visola,
Exatamente isso, vejamos o código e veja o que eu posso fazer:
//exApp18.java
//Desenhar um alvo com duas cores aleatórias alternativas
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import java.util.Random;
public class exApp18 extends JPanel {
Random randomColor = new Random();
Color colorA = Color.BLACK;
Color colorB = Color.YELLOW;
Color colorC = Color.blue;
public exApp18()
{
int colorRandomNe = colorA,colorB,colorC = 1 + randomColor.nextInt(2);
}
public void superComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(colorRandom);
g.fillOval(200, 100, 50, 100);
}
}
Não testei seu código, mas acho que ele não compila.
O que eu pensei seria o seguinte:
Random random = new Random();
pulbic Color getRandomColor() {
int red = random.nextInt(256);
int blue = random.nextInt(256);
int green = random.nextInt(256);
return new Color(red, green, blue);
}
visola,
Não consigui compreender o seu código.
É a classe em si ou um construtor ou uma variável local ?
Abraços!
O código dele gera uma cor “aleatoria” e retorna.
Para voce usar voce deve fazer algo como:
Color cor1 = getRandomColor();
Color cor2 = getRandomColor();
//exApp18.java
//Desenhar um alvo com duas cores aleatórias alternativas
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import java.util.Random;
public class exApp18 extends JPanel {
Random randomColor = new Random();
private Color cor;
private Graphics g;
//construtor para gerar as cores
public exApp18 ()
{
int red = randomColor.nextInt(256);
int green = randomColor.nextInt(256);
int blue = randomColor.nextInt(256);
Color cor = new Color(red,green,blue);
}
public void superComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(cor);
g.fillOval(200, 100, 50, 100);
}
}
//exApp18Test.java
import java.awt.Component;
import javax.swing.JFrame;
public class exApp18Test {
public static void main(String args[])
{
exApp18 myexApp18 = new exApp18();
JFrame application = new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(myexApp18);
application.setSize(230,250);
application.setVisible(true);
}
}
Ao executar o código, não aparece o desenho.
O que está ocorrendo ?
Você está com um problema de escopo. Na linha 23 você faz:
Color cor = new Color(red,green,blue);
Quando na verdade deveria ser apenas:
cor = new Color(red,green,blue);
Se não fizer assim, na linha 34:
g.setColor(cor);
“cor” será null
Talvez por isso ele não esteja desenhando nada.
Olá visola,
ainda não desenhou nada.
Desculpa, não tinha visto mas seu método “superComponent” deve se chamar paint para sobrepor o método da classe JPanel, só assim ele vai desenhar alguma coisa.
Estou a tempos tendo problema com esse programa, pois, nao exibe simplesmente nada!
Estou seguindo as dicas postadas logo acima, e nada de resolver. Por favor, alguem dispoem ajuda ? Mostrar codigos e colocar seus seguintes significados, para que assim eu possa entender.