如何重繪在另一個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
我現在更新了我的問題...謝謝你的幫助 –