Re: Trying to produce a valid URL for both Windows and Unix - help
Steve W. Jackson wrote:
In article <1168956590.231098.49930@a75g2000cwd.googlegroups.com>,
"phillip.s.powell@gmail.com" <phillip.s.powell@gmail.com> wrote:
It appears that toURL() is deprecated within java.io.File.
I still use Java 5, so I hadn't noticed that in Java 6 it is indeed
deprecated. But there's a note in the API Javadocs even in Java 5
indicating that toURL doesn't encode everything and recommending the use
of toURI, followed by the URI method toURL to accomplish the task.
I tried this instead:
String s = file.toURI().toURL().toString().replace(' ', '+');
Which gave me this as a result:
Your new icon can be found <a
href="file:/C:/Documents%20and%20Settings/me/stave.ico>here</a>
That was still not clickable, however, when I tried to click onto the
"link" from within the JLabel within the JFrame.
Sorry, I thought that was it! :(
Phil
The toString and replace parts should still not be necessary...but the
presence of the > and < parts suggest that the string in question
had angle brackets in it. Perhaps that's one part of the problem you
encountered. Plus, there's the question of a link being clickable on a
JLabel...unless it's new to Java 6 (and therefore beyond my experience),
I don't think that's possible, is it?
I changed it to a JEditorPane, which is what I needed all along,
however, the link is still not clickable:
private JEditorPane createHyperlinkPane(String iconPathInfo) {
JEditorPane pane = new JEditorPane();
pane.setBackground(UIManager.getColor("control"));
pane.setOpaque(true);
pane.setEditorKit(new HTMLEditorKit());
pane.setFont(IconMaker.font);
pane.setText(iconPathInfo);
pane.setContentType("text/html");
pane.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent evt) {
if (evt.getEventType() ==
HyperlinkEvent.EventType.ACTIVATED) {
System.out.println("you clicked!");
}
}
});
return pane;
}
private String createIconPathInfoText() {
StringBuffer sb = new StringBuffer();
sb.append("Your new icon can be found ");
try {
generateIconFilePath();
sb.append("<a href=\"" + getIconFilePath() +
"\">here</a>");
} catch (Exception e) {
sb.append("at: \"" + System.getProperty("user.home") +
File.separator +
this.getIconFileName() + "\"");
}
String iconPathInfo = sb.toString();
System.out.println(iconPathInfo);
return iconPathInfo;
}
Still have no clue what's not working.
Phil
= Steve =
--
Steve W. Jackson
Montgomery, Alabama