JPanel の JApplet に JButton があり、クリックすると何らかの処理が行われ、JPanel の内容が変更されてから再描画されます。ただし、ボタン自体を再描画しているようには見えず、JPanel も自己を再描画しています。ただし、JApplet 自体を再描画する必要があると思います。基本的に、ボタンの 1 つをクリックすると、ボタンが変更されますが、JLabels は表示されません。アプレットのサイズを変更するか、ブラウザでアプレットの側面がアプレットに触れるほど小さくすると、すべてがリセットされて見栄えが良くなります。ボタンのコードの 1 つを次に示します。
reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//resets the vars
questions = 0;
wrong = 0;
correct = 0;
//clears the JPanel
overallJP.removeAll();
//adds new question, and buttons
rand = generator.nextInt(10);
JLabel tmp = new JLabel("Answer the Question: "+"\n"+qArr.get(rand).getQuestion());
overallJP.setSize(new Dimension(500,700));
overallJP.add(tmp);
overallJP.add(buttonArea);
overallJP.repaint();
setVisible(true);
repaint();
}
});
他のボタンも同じように見えます。一番下の repaint() に問題があると思います。この匿名関数内から JApplet の再描画を呼び出す方法はありますか? リセット ボタンは、アプレットの init() で宣言されています。さらに質問がある場合、またはさらにコードが必要な場合は、質問してください。