文本描述的显示选项 - Java Swing
Display Options for Text Descriptions - Java Swing
好的,我正在编写这个程序,希望能有一些疏忽。
这个程序,使用 JList 和 JListSelectionListener 将一些图像输出到 1/2 垂直分割 JPanes。其中 JPanes,如前所述;一个显示图像,在底部 JPanel,一个 JEditorPane 读取文本。对于 JEditorPane,我有一个 HTML doc.
样式并且正在从中读取。这在理论上,是我对每个图像的描述。除了,我也不能重定向 JEditorPane,从前面提到的 HTML
文件中读取,这些文件的 URLs
或 paths
是通过 访问的字符串数组[].
主要 Points/Questions (tldr;)
- 如何在每次从 JList[=45= 中选择新图像时从不同的
HTML
文件中读取此 JEditorPane ]?
- 我应该使用 JTextPane 还是其他东西?只是,据我所知,造型可能是个问题。那么,我做错了什么或做错了什么,应该是什么?
代码
private String[] fileName = { "htmlDoc1", "htmlDoc2", "htmlDoc3", "htmlDoc4" };
protected JScrollPane createEditorList() {
JEditorPane editorPane = createEditorPane(fileName[list.getSelectedIndex()]);
JScrollPane editorScrollPane = new JScrollPane(editorPane);
editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setMinimumSize(new Dimension(10, 10));
return editorScrollPane;
}
private JEditorPane createEditorPane(String file) {
JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
java.net.URL helpURL = Bobbleheads.class.getResource("/images/bobbleheads/" + file + ".html");
if (helpURL != null) {
try {
editorPane.setPage(helpURL);
} catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + helpURL);
}
} else {
System.err.println("Couldn't find file: " + fileName);
}
return editorPane;
}
public void valueChanged(ListSelectionEvent e) {
JList<?> list = (JList<?>) e.getSource();
updateLabel(imageNames[list.getSelectedIndex()]);
createEditorPane(fileName[list.getSelectedIndex()]);
}
也谢谢大家,尽一切可能做出贡献!
通过一些方法处理解决了这个 Java 单例。当然,在 AJNeufeld、Andrew Thompson 和 Stack Overflow 的出色帮助下!
方法如下:
原始方法 更改:
protected JScrollPane createEditorList() {
private JEditorPane createEditorPane(String file) {
和 public void valueChanged(ListSelectionEvent e) {
方法 被替换并复制到这些较新的 代码块 .
代码:
重新编写的新方法:
protected JScrollPane makeAEditorPane() {
JScrollPane editorScrollPane = new JScrollPane(makeAEditorList());
editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setMinimumSize(new Dimension(10, 10));
return editorScrollPane;
}
protected JEditorPane makeAEditorList() {
editorPane = new JEditorPane();
editorPane.setEditable(false);
return editorPane;
}
private void feedEditor(String name) {
URL helpURL = Bobbleheads.class.getResource("/images/bobbleheads/" + name + ".html");
if (helpURL != null) {
try {
editorPane.setPage(helpURL);
} catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + helpURL);
}
} else {
System.err.println("Couldn't find file: TextSampleDemoHelp.html");
}
}
public void valueChanged(ListSelectionEvent e) {
JList<?> list = (JList<?>) e.getSource();
updateLabel(imageNames[list.getSelectedIndex()]);
feedEditor(htmlDocs[list.getSelectedIndex()]);
}
了解发生了什么变化:
- 在两个原始的方法中,推导出三个新的方法。
createEditorList()
& createEditorPane(String file)
变成了 makeAEditorPane()
, makeAEditorList()
& feedEditor(String name)
。只需在形成过程中拆分 components editorScrollPane
& editorPane
谢谢致@AJNeufeld。
- 紧接着,新的 方法
feedEditor(String name),
的功能完全符合其名称的含义。在这里提供我们 URL 的启动,为 [=19 分配一个 HTML 文件 =] 推导和 加载 感谢@Andrew Thompson。
- 访问方法:
feedEditor(htmlDocs[list.getSelectedIndex()]);
,在valueChanged(ListSelectionEvent e)
方法内部,为事件 发生。 JList 之间的 event 称为 list
.
总结中...
现在,事件 给前面讨论的 URL 带来了变化。这里说的比较简单;允许在 JList 选择 之间切换,激活 HTML 文件 位于 项目资源 .
就是这样!谢谢大家,注意安全。
好的,我正在编写这个程序,希望能有一些疏忽。
这个程序,使用 JList 和 JListSelectionListener 将一些图像输出到 1/2 垂直分割 JPanes。其中 JPanes,如前所述;一个显示图像,在底部 JPanel,一个 JEditorPane 读取文本。对于 JEditorPane,我有一个 HTML doc.
样式并且正在从中读取。这在理论上,是我对每个图像的描述。除了,我也不能重定向 JEditorPane,从前面提到的 HTML
文件中读取,这些文件的 URLs
或 paths
是通过 访问的字符串数组[].
主要 Points/Questions (tldr;)
- 如何在每次从 JList[=45= 中选择新图像时从不同的
HTML
文件中读取此 JEditorPane ]? - 我应该使用 JTextPane 还是其他东西?只是,据我所知,造型可能是个问题。那么,我做错了什么或做错了什么,应该是什么?
代码
private String[] fileName = { "htmlDoc1", "htmlDoc2", "htmlDoc3", "htmlDoc4" };
protected JScrollPane createEditorList() {
JEditorPane editorPane = createEditorPane(fileName[list.getSelectedIndex()]);
JScrollPane editorScrollPane = new JScrollPane(editorPane);
editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setMinimumSize(new Dimension(10, 10));
return editorScrollPane;
}
private JEditorPane createEditorPane(String file) {
JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
java.net.URL helpURL = Bobbleheads.class.getResource("/images/bobbleheads/" + file + ".html");
if (helpURL != null) {
try {
editorPane.setPage(helpURL);
} catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + helpURL);
}
} else {
System.err.println("Couldn't find file: " + fileName);
}
return editorPane;
}
public void valueChanged(ListSelectionEvent e) {
JList<?> list = (JList<?>) e.getSource();
updateLabel(imageNames[list.getSelectedIndex()]);
createEditorPane(fileName[list.getSelectedIndex()]);
}
也谢谢大家,尽一切可能做出贡献!
通过一些方法处理解决了这个 Java 单例。当然,在 AJNeufeld、Andrew Thompson 和 Stack Overflow 的出色帮助下!
方法如下:
原始方法 更改:
protected JScrollPane createEditorList() {
private JEditorPane createEditorPane(String file) {
和 public void valueChanged(ListSelectionEvent e) {
方法 被替换并复制到这些较新的 代码块 .
代码:
重新编写的新方法:
protected JScrollPane makeAEditorPane() {
JScrollPane editorScrollPane = new JScrollPane(makeAEditorList());
editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setMinimumSize(new Dimension(10, 10));
return editorScrollPane;
}
protected JEditorPane makeAEditorList() {
editorPane = new JEditorPane();
editorPane.setEditable(false);
return editorPane;
}
private void feedEditor(String name) {
URL helpURL = Bobbleheads.class.getResource("/images/bobbleheads/" + name + ".html");
if (helpURL != null) {
try {
editorPane.setPage(helpURL);
} catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + helpURL);
}
} else {
System.err.println("Couldn't find file: TextSampleDemoHelp.html");
}
}
public void valueChanged(ListSelectionEvent e) {
JList<?> list = (JList<?>) e.getSource();
updateLabel(imageNames[list.getSelectedIndex()]);
feedEditor(htmlDocs[list.getSelectedIndex()]);
}
了解发生了什么变化:
- 在两个原始的方法中,推导出三个新的方法。
createEditorList()
&createEditorPane(String file)
变成了makeAEditorPane()
,makeAEditorList()
&feedEditor(String name)
。只需在形成过程中拆分 componentseditorScrollPane
&editorPane
谢谢致@AJNeufeld。 - 紧接着,新的 方法
feedEditor(String name),
的功能完全符合其名称的含义。在这里提供我们 URL 的启动,为 [=19 分配一个 HTML 文件 =] 推导和 加载 感谢@Andrew Thompson。 - 访问方法:
feedEditor(htmlDocs[list.getSelectedIndex()]);
,在valueChanged(ListSelectionEvent e)
方法内部,为事件 发生。 JList 之间的 event 称为list
.
总结中...
现在,事件 给前面讨论的 URL 带来了变化。这里说的比较简单;允许在 JList 选择 之间切换,激活 HTML 文件 位于 项目资源 .
就是这样!谢谢大家,注意安全。