Создавать Java-приложения с поддержкой сенсорной панели MacBook Pro?
Как описывает плитка, я хотел бы иметь возможность добавить несколько интересных кнопок сенсорной панели в свое java-приложение для пользователей MacBook Pro 2016 года. Я пока не видел, есть ли способ реализовать это в java.
Кто-нибудь получил некоторые знания по этому поводу?
2 ответа
Существует новая библиотека Java для взаимодействия с NSTouchBar API, которая называется 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
Судя по всему, Apple не предоставляет поддержку для добавления элементов на сенсорную панель, не говоря уже о том, чтобы делать это в Java.
При просмотре некоторой документации по сенсорной панели может показаться, что вам также понадобится экземпляр класса NSTouchBarItem. У Java нет этого и нет способа получить это. Я сомневаюсь, что использование нативных методов также будет работать, видя, как экземпляр зависит от приложения и передается приложению через apple.
Доступ к бару возможен, но только изначально.