3 回答

TA貢獻1884條經驗 獲得超4個贊
似乎獲得黑暗模式的官方解決方案是使用系統屬性。在 JDK-8235363 中,這可從 JDK 14 及更高版本獲得:
添加了一個新的系統屬性:用于設置整個 Java 應用程序的外觀。
"apple.awt.application.appearance"
如果未設置值,則將使用淺色模式
如果設置了值,則將使用macOS的當前外觀
"system"
其他可能的值是(與淺色相同)或(請求深色)請參閱 https://developer.apple.com/documentation/appkit/nsappearancenameaqua?language=objc
"NSAppearanceNameAqua"
"NSAppearanceNameDarkAqua"
如果設置的值不正確,則將使用淺色模式
若要獲得最佳用戶體驗,可能應始終使用該值來匹配用戶的首選設置:system
-Dapple.awt.application.appearance=system
當然,測試并確保你沒有自己定義的顏色,這使得文本或組件不可見或難以通過這種配色方案看到。
PS:如果您還在尋找與本機macOS黑暗模式相匹配的Swing外觀和感覺,請查看VAqua。免責聲明:我從未在實際應用程序中使用它,但它看起來非常好,并使用本機渲染來看起來像真實的東西。

TA貢獻1784條經驗 獲得超8個贊
要獲取深色標題欄,請使用選項啟動。例如:-NSRequiresAquaSystemAppearance False
java -jar myapp.jar -NSRequiresAquaSystemAppearance False # ("false", "no" or "0" will also work)
注意:許多解決方案建議編輯文件,但這些解決方案對我不起作用。Info.plist
警告:某些框架可能會因強制執行此操作而崩潰,因此請謹慎使用。

TA貢獻1772條經驗 獲得超6個贊
我想,你可能會嘗試使用Darcula:
https://github.com/Revivius/nb-darcula
https://github.com/bulenkov/Darcula
import com.bulenkov.darcula.*;
...
...
BasicLookAndFeel darculaLookAndFeel = new DarculaLaf();
try {
UIManager.setLookAndFeel(darculaLookAndFeel);
} catch (UnsupportedLookAndFeelException ex) {
// ups!
}
添加回答
舉報