我在Java中有一个Font对象用于字体文件.我需要将该对象转换为File对象或获取字体文件路径.
有没有办法做到这一点?
我在这里做的是从外部库调用一个方法来加载一个字体文件,以便在写入时使用它:
loadTTF(PDDocument pdfFile, File fontfile);
Run Code Online (Sandbox Code Playgroud)
所以我想让用户使用以下命令从操作系统中定义的字体中选择一种字体:
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = e.getAllFonts();
Run Code Online (Sandbox Code Playgroud)
然后当用户选择字体时,我将其传递给loadTTF(...)方法以加载它.
这里有不好的做法吗?
我试图在我的Java应用程序中使用此代码在Mac OS X中运行另一个Jar:
Runtime runtime = Runtime.getRuntime();
String cmd = "java -Xmx1024m -jar \"/Volumes/NANO PRO/My Program/Main.jar\"";
Process process = runtime.exec( cmd );
Run Code Online (Sandbox Code Playgroud)
如果Main.jar存在于没有空格的路径中,它将正常工作,但由于它存在于带空格的路径中,因此会导致错误:

有没有办法在有空格的路径中运行?
我有一个JButton,当我点击它时,我从数据库加载一些数据+初始化一个有很多控件的JDialog +用加载的数据填充那些控件然后显示慢JDialog.这需要大约3到5秒才能最终显示JDialog,这会导致程序以错误的方式冻结.
我在SwingX中创建了一个带有JXBusyLabel的小型JDialog,以便在加载和初始化这些缓慢的进程时显示繁忙的标签.但是,如何在初始化慢速对话框的同时在EDT中运行这个繁忙的标签JDialog?
注意:从db加载数据并不慢,但初始化繁重的JDialog及其组件会导致处理速度变慢.
我正在使用物质L&F并且我已设置JComboBox为可编辑,以便我可以从其弹出窗口中选择我想要的值,或在其编辑器中键入新值.
键入一个新值工作正常,但如果我想从Combo编辑器中删除一个未命名的字母,然后单击Backspace来执行此操作,它会选择编辑器中的字母而不是删除它们.这是一个截图:
我希望Combo编辑器在输入键盘字母或退格键或删除键时像JTextField一样工作,那么有没有办法做到这一点?或者是什么导致了这个?