【问题标题】:Create java applications with MacBook Pro touchbar support?使用 MacBook Pro 触控栏支持创建 Java 应用程序?
【发布时间】:2017-10-24 19:26:18
【问题描述】:

正如瓷砖所描述的,我希望能够为 MacBook Pro 2016 用户的 Java 应用程序添加一些很酷的触摸栏按钮。我还没有看到是否有办法在 Java 中实现它。

有人对此有所了解吗?

【问题讨论】:

标签: java macos nstouchbar macbookpro-touch-bar


【解决方案1】:

有一个用于与 NSTouchBar API 交互的新 Java 库,名为 JTouchBar

例如使用 SWT

Shell shell = ...

JTouchBar jTouchBar = new JTouchBar();
jTouchBar.setCustomizationIdentifier("MySWTJavaTouchBar");

// flexible space
jTouchBar.addItem(new TouchBarItem(TouchBarItem.NSTouchBarItemIdentifierFlexibleSpace));

// button
TouchBarButton touchBarButtonImg = new TouchBarButton();
touchBarButtonImg.setTitle("Button 1");
touchBarButtonImg.setAction(new TouchBarViewAction() {
    @Override
    public void onCall( TouchBarView view ) {
        System.out.println("Clicked Button_1.");
    }
});

Image image = new Image();
img.setName(ImageName.NSImageNameTouchBarColorPickerFill);
touchBarButtonImg.setImage(image);

jTouchBar.addItem(new TouchBarItem("Button_1", touchBarButtonImg, true));

// label
TouchBarTextField touchBarTextField = new TouchBarTextField();
touchBarTextField.setStringValue("TextField 1");

jTouchBar.addItem(new TouchBarItem("TextField_1", touchBarTextField, true));

// enable touchbar
jTouchBar.enableForShell(shell);

您可以在 Github 上找到该库: https://github.com/Thizzer/JTouchBar

【讨论】:

  • JTouchBar 是否与最新版本的JavaFX 兼容?见stackoverflow.com/questions/72297649/…。 @Thizzer
  • 很遗憾我很久没能在jtouchbar上工作了,其他人的贡献也很少。我会假设最近的库存在兼容性问题。
  • 你能评论链接的问题吗?
【解决方案2】:

从表面上看,苹果不支持向触摸栏添加项目,更不用说在 java 中这样做了。

在浏览触摸栏的一些文档时,您似乎还需要一个 NSTouchBarItem 类的实例。 Java 没有,也没有提供获得它的方法。我怀疑使用本机方法是否也会起作用,看看实例是如何特定于应用程序并通过苹果传递给应用程序的。

访问栏是可能的,但只能在本地访问。

【讨论】:

  • 感谢您的回复.. 有点糟糕,但会处理它,直到他们打开一种以上的编程语言。
  • NSTouchBarItem 是一个 Cocoa API。但是是否可以从 Java 应用程序中调用 Cocoa API?当 Mac OS X 是全新的并且 POSIX、Carbon、Cocoa 和 Java 被认为是四个相等的时候,有一个 Apple 支持的官方 Java-Cocoa 桥。我不确定 Apple 是否仍然支持此功能(例如 xcode 不再提供 Java 作为选项)。但是对stackoverflow.com/questions/7907918/… 的回答建议了几个第三方可可Java 桥。这些不能用于调用 NSTouchBarItem API 并向 Mac 上的 Java 应用程序添加触摸栏支持吗?
  • @ziggurism 你找到方法了吗?我试图使用github.com/shannah/Java-Objective-C-Bridge - 但我对objective-c了解不够
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
相关资源
最近更新 更多