我正在创建一个窗口,只需单击一个按钮即可关闭它.
为此,我正在使用
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) .
但问题是当我点击command+ 时我的Mac正在关闭那个窗口q.
这是一个代码:
package screen.saver;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
public class ScreenSaver {
public static void main(final String[] args) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
JFrame screenSaverFrame = new JFrame();
screenSaverFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
screenSaverFrame.setUndecorated(true);
screenSaverFrame.setResizable(false);
JButton closeWindow = new JButton("Close window");
closeWindow.addActionListener(e -> {
screenSaverFrame.dispose();
});
screenSaverFrame.add(closeWindow, BorderLayout.CENTER);
screenSaverFrame.validate();
GraphicsEnvironment.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.setFullScreenWindow(screenSaverFrame);
}
}
Run Code Online (Sandbox Code Playgroud) 我对 OSGi 和 Apache Felix 非常陌生。目前我正在通过Maven开发一个桌面应用程序,我想通过插件开发一个应用程序。
考虑Intellij Idea IDE,我正在开发这种GUI应用程序。准备好的产品将是裸露的,即它将有菜单栏、工具栏、状态栏。但我想通过 FileChooser 选择 jar 文件来将其他一些组件添加到应用程序中。选择文件后,应用程序将自行安装。例如,我想通过外部 jar 文件添加一些新功能,例如新工具按钮或功能等。
OSGi 似乎非常好且合适的框架来实现此功能。但在几乎所有 OSGi 书籍中,新捆绑包仅通过命令行使用 Apache Felix、Equinox 等工具(框架)安装。
我已经创建了 Github 存储库https://github.com/Valeme/osgi-shape-app。这是 Maven 项目,它有两个模块。第一个 GUI 应用程序(osgi-shape 模块)是用 JavaFX 编写的,第二个是插件,安装后应该在 osgi-shape-app 的内容中绘制一些形状。
这是菜单项示例。
MenuItem loadExt = new MenuItem("Load extension");
loadExt.setOnAction(event -> {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Bundle ");
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("jar", "*.jar"));
File selectedFile = fileChooser.showOpenDialog(stage);
System.out.println("selectedFile = " + selectedFile);
/*
Here I want to install jar file.
*/
});
Run Code Online (Sandbox Code Playgroud)
插件(bundle jar)将实现Component …