如何重绘在另一个JPanel内的JPanel?我曾尝试一些答案,我在互联网上找到,但我不能让它工作... 有一块我的代码:在其他JPanel内重绘JPanel
我的主面板:
contentPane = new JPanel() {
protected void paintComponent(java.awt.Graphics g) {
super.paintComponents(g);
try {
g.drawImage(ImageIO.read(JanelaJogo.class
.getResource("/imagens/fundo/fundo4.jpg")), 0, 0,
this);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
这是面板内部:
bonusPanel = new JPanel() {
@Override
public void paintComponents(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
}
@Override
public Dimension getPreferredSize()
{
Dimension dim = contentPane.getSize();
int largura = dim.width;
dim = new Dimension(largura, 150);
return new Dimension(dim);
}
};
bonusPanel.setBackground(new Color(0, 0, 0, 0));
contentPane.add(bonusPanel, BorderLayout.SOUTH);
我bonusPanel有2个标签是形象的图标,我想该图像刷新当一些用户在游戏中做一个组合,问题是,它是不是清爽...... 我有试过repaint()
,revalidade()
,validade()
在contentPane
和bonusPanel
但没有工作... 在此先感谢您的帮助!
更新:有一个形象,我会更好地解释我想要什么......
我把Java控制台程序的输出,因此,当有“炸弹”的比赛,电源(按钮上的炸弹)应该改变图像...并且即时打印以控制当前图像,如您所见,它变成了图像“bonus_bomba_1.png”和“bonus_bomba_2.png”,但是问题刷新图形用户界面... 我更新了我之前发布的代码,用于当前的代码... 我只是没有更改drawImage,因为我没有弄清楚我该怎么做,因为它工作正常,没有改变它呢...
这是我在做什么,在“权力”的更新标签的图像:
private void iconBomb(String s) {
try {
bombPic = ImageIO.read(this.getClass().getResource(s));
powerBomb.setIcon(new ImageIcon(bombPic));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
预先感谢您的帮助!
完成了您所说的所有内容,但仍然没有刷新标签的图像。 –
@ JoAoSilva,更新您的问题以发布证明问题的正确[SSCCE](http://www.sscce.org/)。每个问题都应该发布一个“SSCCE”,所以我们不必猜测你在做什么。 – camickr
我现在更新了我的问题...谢谢你的帮助 –