2016-12-18 16 views
5

như gạch mô tả, tôi rất thích có khả năng để thêm một số nút cảm ứng mát mẻ để ứng dụng java của tôi cho người dùng MacBook Pro 2016 .. Tôi chưa nhìn thấy nếu có một cách để thực hiện nó trong java được nêu ra.Tạo các ứng dụng java với hỗ trợ MacBook Pro touchbar?

Bất kỳ ai cũng có một số kiến ​​thức về điều đó?

+0

http://stackoverflow.com/questions/40307443/is-there-programable-access-to- the-control-strip-of-the-macos-touch-bar –

Trả lời

4

Có một thư viện Java mới để tương tác với API NSTouchBar được gọi là JTouchBar.

Ví dụ sử dụng 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); 

Bạn có thể tìm thấy thư viện trên Github: https://github.com/Thizzer/JTouchBar

+0

Tôi đã cập nhật câu trả lời của mình để bao gồm thêm thông tin. – Thys

3

Bởi vẻ ngoài của nó, táo không cung cấp hỗ trợ cho việc thêm các mục vào thanh cảm ứng, không bao giờ nhớ làm điều đó trong java.

Trong khi thực hiện một số tài liệu cho thanh cảm ứng, có vẻ như bạn cũng sẽ cần một phiên bản của lớp NSTouchBarItem. Java không có điều đó, cũng không cung cấp một cách để có được điều đó. Tôi nghi ngờ rằng việc sử dụng các phương thức gốc sẽ hoạt động tốt, xem cách cá thể đó là ứng dụng cụ thể và được truyền cho ứng dụng thông qua quả táo.

Truy cập vào thanh có thể, nhưng chỉ nguyên bản.

+0

Cảm ơn bạn đã trả lời .. Kinda sucks, nhưng chỉ cần đối phó với nó cho đến khi họ mở ra cho nhiều hơn một ngôn ngữ lập trình. –

+1

NSTouchBarItem là một API Cocoa. Nhưng không phải là nó có thể gọi các API Cocoa từ bên trong các ứng dụng Java? Đã có một cây cầu Java-Cocoa chính thức được hỗ trợ của Apple khi Mac OS X là thương hiệu mới và POSIX, Carbon, Cocoa và Java được coi là bằng nhau. Tôi không chắc liệu Apple vẫn hỗ trợ điều này (ví dụ xcode không còn cung cấp Java như một tùy chọn). Nhưng câu trả lời cho http://stackoverflow.com/questions/7907918/how-do-you-make-a-java-app-with-a-cocoa-ui đề xuất một số cầu cacao java bên thứ ba. Những điều này có thể không được sử dụng để gọi API NSTouchBarItem và thêm hỗ trợ thanh cảm ứng vào một ứng dụng Java trên máy Mac không? – ziggurism

+0

@ziggurism bạn đã quản lý để tìm một cách? Tôi đã cố gắng sử dụng https://github.com/shannah/Java-Objective-C-Bridge - nhưng tôi không biết đủ về khách quan-c –

Các vấn đề liên quan