How do you consistently repaint a JComponent?
[code]
/**
* Handle {@link #urlLabelText} to change color if {@link
java.net.URL} displayed is not {@link #homeURL}
*/
private void handleURLLabelText() {
if (SimpleBrowser.this.getURL() != null &&
SimpleBrowser.this.getHomeURL() != null &&
!
SimpleBrowser.this.getURL().equals(SimpleBrowser.this.getHomeURL())) {
SimpleBrowser.this.urlLabel.setForeground(Color.RED);
if (!this.hasAddedURLLabelMouseAdapter) {
// THIS IS TO ENSURE ONLY ONE MouseAdapter
mouseAdapter IS ADDED TO JLabel SimpleBrowser.this.urlLabel
this.hasAddedURLLabelMouseAdapter = true;
SimpleBrowser.this.urlLabel.addMouseListener(mouseAdapter);
}
SimpleBrowser.this.urlLabel.setToolTipText("Click onto
\"" + urlLabelText +
"\" to set \"" + getURLPath() + "\" as your
default homepage");
} else if (this.hasAddedURLLabelMouseAdapter) {
// THIS IS TO ENSURE THE RE-ADDING OF MouseAdapter
mouseAdapter
this.hasAddedURLLabelMouseAdapter = false;
SimpleBrowser.this.urlLabel.removeMouseListener(mouseAdapter);
SimpleBrowser.this.urlLabel.setToolTipText(null);
SimpleBrowser.this.urlLabel.setForeground(Color.BLACK);
}
SimpleBrowser.this.urlLabel.setFont(SimpleBrowserGlobals.FONT);
SimpleBrowser.this.urlLabel.repaint();
}
[/code]
I want to always be able to repaint the JLable
SimpleBrowser.this.urlLabel, however, on occasions while its
ToolTipText is always set with a value (or null), and while I can add
or remove its MouseListener, I can't seem to always change the color
back from red to black (though I can always change it from default
black to red).
I thought using repaint() would ensure that the changes to the JLabel
would take place, but unfortunately it does not, not even when I
invoke:
[code]
/**
* Handle {@link #urlLabelText} to change color if {@link
java.net.URL} displayed is not {@link #homeURL}
*/
private void handleURLLabelText() {
if (SimpleBrowser.this.getURL() != null &&
SimpleBrowser.this.getHomeURL() != null &&
!
SimpleBrowser.this.getURL().equals(SimpleBrowser.this.getHomeURL())) {
SimpleBrowser.this.urlLabel.setForeground(Color.RED);
if (!this.hasAddedURLLabelMouseAdapter) {
// THIS IS TO ENSURE ONLY ONE MouseAdapter
mouseAdapter IS ADDED TO JLabel SimpleBrowser.this.urlLabel
this.hasAddedURLLabelMouseAdapter = true;
SimpleBrowser.this.urlLabel.addMouseListener(mouseAdapter);
}
SimpleBrowser.this.urlLabel.setToolTipText("Click onto
\"" + urlLabelText +
"\" to set \"" + getURLPath() + "\" as your
default homepage");
} else if (this.hasAddedURLLabelMouseAdapter) {
// THIS IS TO ENSURE THE RE-ADDING OF MouseAdapter
mouseAdapter
this.hasAddedURLLabelMouseAdapter = false;
SimpleBrowser.this.urlLabel.removeMouseListener(mouseAdapter);
SimpleBrowser.this.urlLabel.setToolTipText(null);
SimpleBrowser.this.urlLabel.setForeground(Color.BLACK);
}
SimpleBrowser.this.urlLabel.setFont(SimpleBrowserGlobals.FONT);
SimpleBrowser.this.urlLabel.repaint();
SimpleBrowser.this.topPanel.validate(); // CONTAINS
urlLabel
validate(); // SimpleBrowser ULTIMATELY EXTENDS JFrame
}
[/code]
Suggestions?
Thanx
Phil