Java Swing - Как дважды щелкнуть файл проекта на Mac, чтобы открыть мое приложение и загрузить файл?
Я создал приложение Mac Java Swing и для него установил расширение файла (*. Pkkt) в & quot; Info.plist & quot; файл, поэтому при двойном щелчке по этому файлу открывается мое приложение.
Когда я делаю это, программа работает нормально. Теперь мне нужно загрузить проект (* .pkkt) в программу, но путь к файлу не передается в качестве аргумента методу main (...) в Mac, как это происходит в операционной системе Windows.
После некоторого поиска я нашел банку с яблоком для обработки & quot;MRJToolkitStubs& Quot; это имеетMRJOpenDocumentHandler интерфейс для обработки таких нажатых файлов. Я пытался использовать его для загрузки этого файла путем реализации этого интерфейса в основной класс программы, но он не работает. Реализованный метод никогда не вызывается при запуске программы.
How does this Interface run ?
------------------------------------------------- Редактировать : Добавить образец кода
Вот код, который я использую:
<code>public static void main( final String[] args ) { . . . MacOpenHandler macOpenHandler = new MacOpenHandler(); String projectFilePath = macOpenHandler.getProjectFilePath(); // Always Empty !! } </code>
<code>class MacOpenHandler implements MRJOpenDocumentHandler { private String projectFilePath = ""; public MacOpenHandler () { com.apple.mrj.MRJApplicationUtils.registerOpenDocumentHandler(this) ; } @Override public void handleOpenFile( File projectFile ) { try { if( projectFile != null ) { projectFilePath = projectFile.getCanonicalPath(); System.out.println( projectFilePath ); // Prints the path fine. } } catch (IOException e) {} } public String getProjectFilePath() { return projectFilePath; } } </code>
As mentioned in the comment above "getProjectFilePath()" is always Empty !