Có cách nào để sử dụng Nimbus LAF (Giao diện) trên OS X trong khi vẫn có thể sử dụng phím Meta để cắt/sao chép/dán và chọn tất cả các thao tác?Phím tắt của Bàn phím Mac với Nimbus LAF
Tôi hiện đang có đoạn mã sau vào phương pháp chính ứng dụng Swing của tôi, làm thay đổi lên LAF dựa trên hệ điều hành (mặc định cho OS X, Nimbus cho tất cả những người khác):
if (!System.getProperty("os.name", "").startsWith("Mac OS X")) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(LicenseInspectorUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
}
Tôi làm điều này như giải pháp thay thế vì Nimbus ghi đè phím tắt để cắt/sao chép/dán và chọn tất cả trên OS X (Phím meta so với Ctrl). Tôi muốn sử dụng Nimbus mọi lúc, nếu chỉ các phím tắt không bị ghi đè.
Tôi không thấy cách này trả lời câu hỏi. Ngay cả khi bạn gọi getMenuShortcutKeyMask() khi đăng ký các phím tắt bàn phím tùy chỉnh, điều này không sửa lỗi Ctrl-C, Ctrl-V, v.v. trong một Swing TextField mặc định khi sử dụng NimbusLookAndFeel trên OSX. – yonran
@yonran: Tôi đã xây dựng ở trên. – trashgod
Dường như tên hành động khác nhau theo thành phần. Vì vậy, để ánh xạ hành động "copy", bạn cũng sẽ cần phải bản đồ DefaultEditorKit.copyAction. –