コードの背後にあるアイデアは、2つの数字を生成する簡単な乗算ゲームで、私はcorret答えを入力する必要があります。JLabelパネルの不透明度と一般的な背景の色付け
基本的に、私の質問(複数可)されて(さ):
- 私はoperacao.setOpaque(false)を行います。それは何もしません、または少なくとも私がそれが(灰色の領域がピンクでなければならない、http://puu.sh/pyVcE/813aa1843a.pngは、バックグラウンドがピンクであると思いますか?)。 JLabelsでも同様ですが、setOpaque(false)は(この場合は)数字の背後に灰色の背景を残します。
- ペイントメソッドを変更すると言っている人がいましたが、それはうまくいっていましたが、奇妙な問題が発生しました。(コンソールを起動したときにすべてのペイントが行われ、JTextFieldだけがクリアsetOpacity(1)で「固定」します。 setBackground(ピンク); - これはこれを行う正しい方法ですか?
public class Frame extends JFrame {
private JPanel panel, mensagem, operacao;
private JTextArea sucesso;
private JLabel numero1, numero2;
private JTextField resposta;
private Color pink = new Color(255, 213, 224);
//more vars
public Frame() {
super("Jogo de Multiplicar!");
setOpacity(1);
setBackground(pink);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
setSize(300, 200);
panel = new JPanel();
mensagem = new JPanel();
operacao = new JPanel();
mensagem.setLayout(new FlowLayout(FlowLayout.CENTER));
operacao.setLayout(new FlowLayout(FlowLayout.CENTER));
sucesso = new JTextArea();
sucesso.setEditable(false);
sucesso.setOpaque(false);
sucesso.setFont(minhaFont2);
Random randomGen = new Random();
while (random1 == 0)
random1 = randomGen.nextInt(10);
while (random2 == 0)
random2 = randomGen.nextInt(10);
res = random1 * random2;
numero1 = new JLabel();
numero2 = new JLabel();
numero1.setText(random1 + " *");
numero2.setText(random2 + " =");
numero1.setOpaque(false);
numero1.setFont(minhaFont);
numero2.setFont(minhaFont);
resposta = new JTextField(2);
resposta.addActionListener(new MinhaAcao());
resposta.setFont(minhaFont);
operacao.add(numero1);
operacao.add(numero2);
operacao.add(resposta);
mensagem.add(sucesso);
operacao.setOpaque(true);
operacao.setBackground(pink);
mensagem.setOpaque(true);
mensagem.setBackground(pink);
//add(panel, BorderLayout.NORTH);
add(operacao);
add(mensagem, BorderLayout.SOUTH);
}/*
public void paint(Graphics g) {
g.setColor(pink);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
}*/
1)すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 2)コアクラスの名前を反映しないカスタムクラスには、分かりやすい名前を使用してください! –