现在我已经阅读了这里的文档:http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html
但是我仍然不明白...我如何在我的代码中实现它?
我不能将getImage更改为getResources,因为它需要一些东西,我不知道是什么。
编辑:这是图像行现在的样子:图像pic=Toolkit。getDefaultToolkit()。getImage(“src/klassid/Pictures/mario.png”)
这将从资源中加载它。
代码:
package klassid;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.Graphics;
import java.net.URL;
public class Hero {
static Main main;
java.awt.Image pic = javax.imageio.ImageIO.read(Hero.class.getClassLoader().getResourceAsStream("Pictures/mario.png"));
//Image pic = Toolkit.getDefaultToolkit().getImage(this.getClass().getClassLoader().getResource("klassid/Pictures/mario.png"));
double height = 0, speed = 4;
public static final double gravity = 9.81;
double x = 25;
int y, a;
boolean left = false, right = false, up = false;
public Hero(int x, int y){
this.x = x;
this.y = y;
}
public void render(Graphics g, Main pohiKlass){
g.drawImage(pic, (int) (x), (int) (500-(height*100)), 50, 50, pohiKlass);
}
public void the_jump() {
long previous = 0, start = 0;
while(true){
start = System.nanoTime();
if(previous != 0 && up){
double delta = start - previous;
height = (height + (delta/1000000000) * speed);
speed -= (delta/1000000000) * gravity;
y = (int) (500-(height * 100));
//System.out.println(y);
}
if(left)
x-= 3;
if(right)
x+= 3;
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(height < 0){
height = 0;
speed = 4;
up = false;
}
previous = start;
}
}
public void liigu(int i){
if(i == 38 || i == 87)
up=true;
if(i == 37 || i == 65)
left=true;
if(i == 39 || i == 68)
right=true;
}
public void liigu2(int i){
if(i == 37 || i == 65)
left=false;
if(i == 39 || i == 68)
right=false;
}
public void getY(){
a = y;
}
}
将其作为资源加载,为什么不呢?:
java.awt.Image pic = javax.imageio.ImageIO.read(Hero.class.getClassLoader().getResourceAsStream("klassid/Pictures/mario.png"));
您应该尝试通过将“图片”文件夹直接放入项目文件夹来移动它。
您的文件夹布局应该如下所示。
-Kodune-mang
-src
-klassid
-Pictures
-mario.png
你可以参考“马里奥”。使用路径创建png图像。
Pictures/mario.png
因为java(或至少eclipse)中的文件路径系统将自动在主项目目录中启动。它将能够查看“src”文件夹及其子组件,以及新的“Pictures”文件夹及其子组件。
工具包。getImage()有2个方法,您应该使用第二个方法和URL作为参数,并使用类加载器获取资源并将其传递
// I am assuming that your picture is in klassid/Pictures folder inside the jar file
Image pic = Toolkit.getDefaultToolkit().getImage(this.getClass().getClassLoader().getResource("klassid/Pictures/mario.png"));
我喜欢一步一步地做事情,所以,首先测试类加载器,看看您是否可以通过以下方式将图像与Toolkit分开:
URL imgUrl = this.getClass().getClassLoader().getResource("klassid/Pictures/mario.png");
然后简单地做这个系统。出来println(this.getClass()。getClassLoader()。getResource(“”)以查看根路径,并按照该路径访问图像/资源。关于getResource(),您应该了解的一点是,它是在运行时相对于类路径获取资源的一种手段。在eclipse中,您可以设置bin或bin/class。而在。jar文件它是文件结构的顶部。
我对javafx非常陌生,而且已经学会了使用代码教程进行测试时: 异常是由第行
我读过https://flutter.dev/docs/development/ui/assets-and-images#asset-包依赖项中的图像和从资产中读取的文本文件,并应用了所有这些,但我的代码仍然无法工作。。。。 我为此打开了一个新项目,在主文件夹中创建了资产和文件: 然后,不信任Android Studio,我检查了vi,在pubspec.yaml一切都好: 该文件以以下内容结尾:
这是我的应用程序的文件夹结构 在我的文件,我像这样加载字体和资源 对于这个,运行将给出退出代码0。 在我家。dart我有以下课程: 我在其他地方使用,以显示图像(代码省略): 这座大楼没有错误。颤振博士-v没有给出任何错误,颤振分析-v也没有给出任何错误。apk似乎构建得很好,但当应用程序在我的手机上打开时,我在asset_bundle中发现以下错误。投掷: 发生异常。错误(无法加载资源:imag
我有一个Laravel应用程序,在我的public/js文件夹中有一些javascript文件。在127.0运行我的应用程序时。0.1:8000/Laravel无法打开JS文件。错误404: 我认为这可能与身份验证有关,所以我已经在public/js文件夹上执行了chmod 777。但那没用。 我把它们输入如下:
我想在不同的子目录中保存不同的css和js文件,这是我的目录结构 然后我尝试将所有这些文件导入到我的索引中。html文件(由“/”映射),但没有正确导入。我应该配置什么使Spring boot能够在“资源”下的所有子目录中递归搜索资源?另外,如果我还想将所有html模板放在子目录中,该怎么办?
问题内容: 浏览服务器的IP地址时,我有一个jar可以很好地加载java web start。一旦尝试使用服务器 名称, 我将收到以下异常: 包装的异常: JNLP: 知道我应该找什么吗? 问题答案: 我已经将Java代理设置更改为直接连接-并且它可以工作。