【问题标题】:How to override JLabel importData如何覆盖 JLabel importData
【发布时间】:2012-04-04 23:05:00
【问题描述】:

我正在尝试一个非常简单的覆盖。我只想为“文本”TransferHandler 添加一行代码到 importData。我的问题是在我的一行代码之前找不到需要复制到覆盖方法中的代码!

public class JLabelTransferHandler extends TransferHandler
{
    private Logger logger;  // My error logging class

    public JLabelTransferHandler()
    {
        super("text");
        logger = LoggerFactory.getLogger(this.getClass());
    }

    public boolean importData(TransferSupport support) 
    {
        // WHAT GOES HERE?????
        logger.info("Data imported");           
        return true;
    }
}

【问题讨论】:

  • 你看过关于这个的 Swing 教程吗?具体this link?

标签: java swing drag-and-drop jlabel


【解决方案1】:

根据本教程,您应该首先检查您的组件是否支持这种风味类型的传输,因此您需要调用 canImport(...) 方法(您可能需要重写该方法) ,如果是,则从 TransferSupport 参数中提取 Transferable,获取其 String 数据,然后将其放入您的 JLabel。简单的。同样,上面的链接显示了所有内容。

【讨论】:

  • 不幸的是,我一直在谷歌上搜索“JLabel 拖放”,而那个教程没有出现。啊。
  • 您在谷歌上搜索的问题过于具体。您只需要 Google Java 拖放,然后将您找到的内容扩展到 JLabels。
  • 我遇到的问题是我不知道如何将字符串数据放入我的 JLabel... 我可以只做一个 jLabelText.setText(data);其中“数据”是从 Transferrable 中提取的字符串数据?所有示例都使用 JLists 和 JTrees,并具有这些复杂的带有放置位置的“insertAt”方法。在 TransferHandler 中使用 setText 方法似乎很奇怪。
  • @Louis:比在这里问更好——试试吧!您可能会感到惊喜(就像我大约一个小时前尝试它时一样)。
猜你喜欢
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 2021-06-26
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
相关资源
最近更新 更多