您好,我需要從JPanel更改JFrame上的JLabel。只有當鼠標移動時,我纔可以改變這一點,但每當得分++時我都需要改變;如何從JPanel swing更改JFrame標籤
private void panelKwadraty1MouseMoved(java.awt.event.MouseEvent evt)
{
jLabel1.setText("Twoj wynik to: "+panelKwadraty1.getScore());
}
我需要改變的時候:
if (kwadrat[i].sprawdzKolizje(belka) == 1)
{
kwadrat[i]=new Kwadrat(kwadrat[i].getKolor());
score++;
// Jframe.jLabel1.setText("Your score is :" + score); <--- i need do that
}
編輯:
我解決了問題。我用propertyChangeListener。
在JFrame中:
panelKwadraty1.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
panelKwadraty1PropertyChange(evt);
}
});
private void panelKwadraty1PropertyChange(java.beans.PropertyChangeEvent evt)
{
if(evt.getPropertyName().equals(PanelKwadraty.ZMIANA_WYNIKU)){
setLabelText(""+evt.getNewValue());
}
}
在JPanel中:
int old_score = score;
score++;
this.firePropertyChange(ZMIANA_WYNIKU, old_score, score);
它是jLabel1 jFrame中的公共字段? – 2011-05-01 14:09:22