Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX导入图像&;绘图_Java_Javafx - Fatal编程技术网

JavaFX导入图像&;绘图

JavaFX导入图像&;绘图,java,javafx,Java,Javafx,我对Java非常陌生,正在使用Netbeans程序。对于如何导入图像,甚至如何使用图形绘制图像,我感到非常困惑。我已经设置了我的场景,想在屏幕上导入多个图像,但是在将图像导入场景的第一步,我就被卡住了。任何关于如何让图形工作的建议都将是一个很好的开始 package spaceinvaders; import java.util.Scanner; import javafx.application.Application; import javafx.scene.Scene; import j

我对Java非常陌生,正在使用Netbeans程序。对于如何导入图像,甚至如何使用图形绘制图像,我感到非常困惑。我已经设置了我的场景,想在屏幕上导入多个图像,但是在将图像导入场景的第一步,我就被卡住了。任何关于如何让图形工作的建议都将是一个很好的开始

package spaceinvaders;

import java.util.Scanner;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

/**
 *
 * @author Twissted
 */

public class SpaceInvaders extends Application {

@Override
public void start ( Stage stage ) throws Exception {

    Pane root = new Pane ();
    Scene scene = new Scene ( root, 500, 500, Color.BLACK );
    stage.setTitle ( "Space Invaders" );
    stage.setScene ( scene );




    System.out.println ( "Please enter how many rows of aliens you wish to encounter: " );
    int r1;
    Scanner keyboard = new Scanner ( System.in );
    r1 = keyboard.nextInt ();


    stage.show ();

}



public static void main (String [] args ) {
    launch ( args );
}

}

我知道这可能非常简单,我对编程部分很在行,但我一生都不知道如何让这个程序的图形部分工作。

你可以创建一个
图像视图
,并将其添加到你的
窗格
。移动其
LayoutX
LayoutY
属性,将其放置在屏幕上。在本例中,文件
sprite.png
必须与类位于相同的包空间中。确保你用正确的方式包装

ObservableList<Node> children = pane.getChildren();
ImageView sprite = new ImageView(getClass().getResource("sprite.png").toString());
 children.add(sprite);
 sprite.setLayoutX(300d);
 sprite.setLayoutY(20d);
observeListChildren=pane.getChildren();
ImageView sprite=newImageView(getClass().getResource(“sprite.png”).toString());
添加(雪碧);
sprite.setLayoutX(300d);
雪碧.刚毛(20d);

不过我还是建议您使用。

不要在JavaFX应用程序线程上使用
Scanner
!你会阻止它运行。您对加载和显示PNG/JPEG图像有何疑问?另外,通过使用一个框架,你们也许可以花更多的时间来处理大量的家务,比如说,老实说,我不知道还有什么更好的。这是我能够弄清楚如何接收输入并将其指定给变量的唯一方法,我计划稍后使用该变量为我希望放置在场景中的图像指定x和y位置。想象一下太空入侵者。我想为行和列获取用户输入,并在屏幕上放置一堆外星人。我的主要问题是如何在屏幕上显示这个PNG/JPEG图像。它甚至不必是PNG/JPEG,哪怕只是一个小正方形,只要我想,我都可以做REST。看起来你需要先研究
事件驱动的
编程。然后做一些基础教程。你太超前了。我同意@Sedrick的观点。阅读可能是一个好的开始。这是我在学校学习一周后的第一个作业。到目前为止,我一直在读这本教科书,但无论是从课本上还是从我的老师那里都一无所获。在这一点上我得自学。我有使用Python的经验,但使用Java则完全不同。我将研究事件驱动编程。我很感激:)我们正在学习使用Netbeans 8.2。在我看来,FXGL是另一个程序吗?我希望…NetBeans是一个IDE,FXGL是一个库,它通过提供常见的行为帮助您在JavaFX中创建游戏。任何一个优秀的程序员都会使用一个库,而不是通过发布自己的东西来浪费时间。好吧,我会下载它并研究它是否能帮助我:)一定要查看它的wiki,解释如何使用它。