小编Val*_*eme的帖子

JFrame DO_NOTHING_ON_CLOSE无法在Command + Q上运行

我正在创建一个窗口,只需单击一个按钮即可关闭它.
为此,我正在使用
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)

java swing jframe

4
推荐指数
1
解决办法
246
查看次数

如何将 Apache Felix 包含到 Maven 项目中以便以编程方式安装捆绑包?

我对 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 …

java osgi maven apache-felix

3
推荐指数
1
解决办法
449
查看次数

标签 统计

java ×2

apache-felix ×1

jframe ×1

maven ×1

osgi ×1

swing ×1