Ash*_*oli 0 java url swing jeditorpane
我有Java桌面应用程序,显示每个单元格JTable中包含的信息URL + text.因为我在单元格中显示和打开URL时遇到困难所以我计划显示单元格的内容JEditorpane.用户可以JEditorpane在用户可以轻松查看和编辑内容的位置打开单元格内容.
同样,我如何才能使URL可点击并允许用户在默认浏览器中打开URL JEditorpane.
请注意:
JEditorpane 窗格将包含文本和URL,因此我只需要点击URL即可. JEditorpane是可编辑的.用户可以编辑内容.And*_*son 10
HyperlinkListener.用于JavaDocs的EG JEditorPane.text/html,且不可编辑.Desktop.browse(URI)到URL.您可以考虑使用JXTable和JXHyperlink(都在SwingX项目中) - 它们支持渲染器中的超链接,包括Desktop支持的HyperlinkAction(@Andrew Thompson提到的类)
忘了提到默认情况下为类URI安装了相应的渲染器,这是一个代码片段,它通过单击包含URI的单元格来触发相应的DeskTop操作:
// quick model which returns URI class
DefaultTableModel model = new DefaultTableModel(0, 1) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
return URI.class;
}
};
// fill with supported uri types
model.addRow(new Object[]{new URI("mailto:contributor@java.net")});
model.addRow(new Object[] {new URI("http://swingx.java.net")});
model.addRow(new Object[] {new URI("http://stackoverflow.com/questions/9031371/how-to-show-url-as-a-click-able-url-in-jeditorpane-and-allow-them-to-open-in-def")});
model.addRow(new Object[] {new URI("http://dummy.org")});
// use in JXTable
JXTable table = new JXTable(model);
// that's it :-)
Run Code Online (Sandbox Code Playgroud)
附录
忽略了你对url + text的要求 - 在swingx默认支持中,整个单元格是可点击的,不仅是url的字符串表示形式
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |