我有一个 JButton,在 JPanel 中,在 JApplet 中,单击它时会执行一些操作,更改 JPanel 的内容,然后应该重新绘制。但是,它似乎并没有重绘按钮本身,而 JPanel 也在重绘它的自身。但是,我认为我需要让 JApplet 自己重新绘制。本质上,我会单击其中一个按钮,按钮会改变,但 JLabels 不会出现。一旦我重新调整小程序,或者在浏览器中将其缩小到浏览器的两侧接触到小程序,它就会全部重置并且看起来很棒!其中一个按钮代码如下:
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() 中声明。如果您有更多问题或需要更多代码,请询问!