【问题标题】:JMenuItem displays weird nameJMenuItem 显示奇怪的名称
【发布时间】:2011-02-03 01:32:11
【问题描述】:

我的投资终于成功了! :D 但是,你知道......现在......这很愚蠢。我希望它在右键单击时显示“使用第 1 项”或其他任何内容,因此我这样做:

        if (actItemx == "Item 1") {
            popup.add(dropMenuItem + " " + actItemx); // should print "Use Item 1"
            popup.add(cancelMenuItem);
        }

对我来说看起来不错......但是......当我编译时,它很好。当我运行它时,它很好......但是当我这样做时:

我会发誓,因为它在 CMD 中正确显示,它会在 JMenu 上正确显示......很奇怪。

【问题讨论】:

    标签: java swing jmenu


    【解决方案1】:
    popup.add(dropMenuItem + " " + actItemx);
    

    该命令是添加 dropMenuItem Swing 组件的 toString() 表示,加上一个空格,即 actItemx 的字符串值。

    我猜你想要:

    popup.add(dropMenuItem.getText() + " " + actItemx);
    

    【讨论】:

    • 打败我。此外,使用equals() 进行字符串比较,而不是==。但是更好的解决方案不是dropMenuItem.setText() 并添加它而不是String
    • 我真的无法弄清楚 OP 想要做什么。我假设有某种父菜单项,他正试图根据父项的文本创建一个子项,所以他不想覆盖现有的菜单项,而是创建一个新的菜单项。我主要是试图描述问题的原因并让发布者决定正确的解决方案。
    猜你喜欢
    • 2015-11-24
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 2012-02-18
    相关资源
    最近更新 更多