当前位置: 首页 > 面试题库 >

将JPG加载到Swing应用程序中

融烨磊
2023-03-14
问题内容

我想我在这里遇到了一些classpath忧郁症。我一直在关注这些例子。我看了教程。但是似乎没有什么对我有用。

假设我在以下URI中具有JPEG: C:\Users\MyUser\someIcon.jpeg

假设我有一个带有的Swing应用JPanel,并且我想将此JPEG添加到JPanel中(位置/布局无关紧要)。

那么如何做到这一点? 我没有收到任何错误或异常,只是没有看到JPEG负载。我要使用的代码是这样的:

String someIconUri = "C:\Users\MyUser\someIcon.jpeg";
URL imageUrl = getClass().getResource(someIconUri);
ImageIcon imageIcon = new ImageIcon(imageUrl);
myPanel.add(imageIcon);

请告知…我从今天中午开始及其午夜一直在处理这个问题。在此先感谢您向正确方向的 推动


问题答案:

String someIconUri = “C:\Users\MyUser\someIcon.jpeg”;

不,它不是“某些图标URI”,根本不是有效的URI。想到它,它甚至不是可编译的语句,因为其中String包含非法的转义字符!

可能是类似的东西。

String someIconUri = "file:///C:/Users/MyUser/someIcon.jpeg";

但这getResource()既不是必需的也不是有用的,因为它只会在运行时类路径上定位资源。只需URL直接从构建String

但这实际上只是“答案的一部分”。这就是为什么。

在这种情况下,基本上有两种资源。应用程序资源和(希望更好地使用)用户资源。

应用程序资源。

这些资源可能包括框架图标,按钮和菜单图标(Action图标),标签图标。帮助文件(和相关图像),启动图像。

应该将它们添加到一个单独的Jar中(通常),并添加到应用程序的运行时类路径(使用清单或applet元素或JNLP文件等其他方式)。

应通过URL访问应用程序资源,可以使用以下网址获取该资源getResource()

URL iconUrl = this.getClass().getResource("/icons/copy.jpg");

用户资源。

用户希望打开(编辑/打印)现有的文本文档,从图像帧制作GIF动画,然后在其文件系统上编辑图像。

对于这些类型的资源(并假定该应用程序是受信任的或没有安全管理器),请向用户提供JFileChooser。它将返回一个特定的,现有的File或更多的(取决于配置和使用方式)。

在这种情况下,切勿将转换File为其他任何东西,只需直接使用实例即可。

从资源(值得一提)中获取输入的大多数方法都会接受File URL InputStream

最后一个对于在内存中生成的东西或从套接字或JNLP API
FileContents对象等来源获取的东西很有用。后者对于
沙盒 应用程序特别有用。使用Java Web Start启动或嵌入。



 类似资料:
  • 我对Cordova完全陌生,但现在我已经用NPM安装了Cordova,安装了Android SDK,并设置了一个AVD,它似乎工作得很好,直到我想要模拟我的项目。由于某种原因,实际应用程序没有加载到模拟器中。 执行以下操作: 然后启动Android emulator,但应用程序不存在。是否有人建议修复此问题,以便我能够在模拟器中进行实际测试? 提前谢谢你。

  • 我很难知道如何将我的JFXPanel(它是一个mp3播放器)集成到一个现有的Swing应用程序中,该应用程序是一个JFrame,其中添加了几个不同的JPanel。我对JavaFX是一个完全的noob,它与Swing非常不同。 我能够得到下面的代码来运行和做我想做的事情。它将播放mp3文件从一个目录,我有他们包含在。这是某人编写的示例中的代码。我的问题是,这段代码创建了JFrame,有main方法和

  • 问题内容: 我需要在Java Swing应用程序中使用自定义字体(ttf)。如何将它们添加到包装中并使用它们? 同时,我只是将它们安装在Windows中然后使用它们,但是我不希望应用程序的使用如此复杂,告诉用户在使用我的应用程序之前安装字体不是很方便。 问题答案: 您可以通过加载它们: 此加载的字体没有预定义的字体设置,因此要使用该字体,您必须这样做: 看到: 物理和逻辑字体

  • 问题内容: 我一直在寻找一种将Web浏览器组件集成到现有的Swing应用程序中的方法,并找到了适用于Java FX 2.0的WebView。此外,我在java.net上找到了一篇博客文章,展示了如何将Java FX组件集成到Swing应用程序中 。所以我想这可能是可行的,但我还没有尝试过。 我很好奇,您认为这是个好方法吗?有更好的解决方案吗?甚至可行吗?可能有预先捆绑好的东西吗? 的动机是: 我想

  • 问题内容: 我们已经建立了销售点系统,现在我们需要将其实施到 触摸屏上吗?我们是否需要依次更改任何代码以使其正常工作。 而且我们正在使用键盘输入值-假设数量- 当我关注 JTextField时,是否有Java方式弹出键盘(例如android)? 问题答案: 这是有关如何实现弹出式键盘的简单示例:

  • 在我的昂首阔步的UI中,当我单击“试用”并执行一个请求时,请求是在没有任何令牌的情况下发送的。 问题--有什么方法可以查询登录请求并将授权令牌添加到Swagger UI请求中吗?