【问题标题】:JTextPane Insert Icon TroubleshootingJTextPane 插入图标疑难解答
【发布时间】:2012-01-30 15:37:11
【问题描述】:
public void valueChanged(TreeSelectionEvent event) {
    //Add images depending on selection.
    String selection = navigation.getLastSelectedPathComponent().toString();
    if (selection == "Sigma") {
        try {
            Style style = document.addStyle("StyleName", null);
            StyleConstants.setIcon(style, new ImageIcon("sigma.png"));
            document.insertString(document.getLength(), "ignored text", style);
        } catch (BadLocationException e){

        }
    }

}

大家好,除了图标的实际插入之外,我已经调试了所有内容,一切正常。

谁能向我解释为什么这不起作用?我有一个 try and catch 语句,但它似乎仍然失败。

PS:不要要求更多的代码,我的代码没有这些代码就可以完美编译。 document 是一个全局变量,并且,我使用样式来插入图标(如果我错了,请纠正我)。

【问题讨论】:

  • 1) 为了尽快获得更好的帮助,请发帖 SSCCE。 “不要要求更多代码,” 不要告诉我该怎么做。 “我的代码在没有这段代码的情况下可以完美编译。” 也许,但 sn-p 没有。 2) 不要忽略异常。
  • 好的,我会记住的。有没有办法上传java文件?
  • 与“上传”sn-p 的方式相同。

标签: java swing icons awt jtextpane


【解决方案1】:

你有一个问题:

selection == "Sigma"

这不是你比较字符串的方式,把它改成:

"Sigma".equals(selection)

也不要吞下异常:

} catch (BadLocationException e) {
    //do something here
    e.printStackTrace();        
}

【讨论】:

  • 这两个都给我错误。 .equals 函数给了我一个“)”预期的错误。
  • 执行 e(dot)printSt... 并再添加一个“)”。第一个是错字,第二个是语法错误。
  • 我做了 e.printStacktrace,而不是 .eprintStacktrace(抱歉打错了),我的手很冷,刚去抽根烟。
  • 对不起,我的错,这实际上是我这边的一个错字。 “T”是大写字母。
  • 谢谢!但是,它仍然没有将图标插入到 JTextPane 中。关于它为什么这样做的任何线索?不过我没有收到错误。
猜你喜欢
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-06
  • 2014-08-29
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多