首页 > 解决方案 > 使用 java.awt 和 java.swing 获取要在框架上显示的 file.png 图像

问题描述

我试图让图像显示在我正在创建的游戏的框架上。我没有扩展任何 JPanel 或 JFrame,而是创建了多个框架类和一个动作类。我目前无法在我创建的测试框架上显示图像。我的代码可以编译,但是当我单击框架时它会关闭。谢谢!

PS这只是我的代码的一部分。我听说在线发布总代码不好。

代码:

    public void testframe(){
    testframe = new Frame("Main Menu");
    testframe.setSize(1600,1600);
    try{
        myPicture = ImageIO.read(new File("basic.png"));
    }
    catch(IOException e){
        e.printStackTrace();

        //FirstFrame.setVisible(true);
        //testframe.setVisible(false);
    }

    JLabel picLabel = new JLabel(new ImageIcon(myPicture));

    testframe.add(picLabel);

    //testframe.drawImage(myPicture,"png", );

    testframe.setVisible(true);

}

private void showButtonDemo(){

    Font myFont = new Font("Serif", Font.ITALIC | Font.BOLD, 12);
    Font newFont = myFont.deriveFont(50F);
    headerLabel.setText("SNAKE GAME"); 
    headerLabel.setFont(newFont);
    statusLabel.setText("By Tejas and Ashwin");
    statusLabel.setFont(newFont);

    Button startButton = new Button("Start Game");//begins game
    Button snakecolorButton = new Button("Choose Snake Color");//selects snake color
    Button themeColorButton = new Button("Choose Theme");//selects two colors(1 primary and 1 secondary)
    Button InstructionsButton = new Button("Instructions");
    Button testbutton = new Button("test");

    testbutton.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            //testframe();
            //testframe.setVisible(true);
            FirstFrame.setVisible(false);
        }
    });

标签: javaimageswingawt

解决方案


首先,需要共享代码来获得帮助,所以如果您认为代码无论如何都涉及您需要共享它的帮助,否则明智的没关系...对于手头的问题,您可以使用 jlable 并为其设置 iamge显示 png 但最好的方法是为游戏创建它是创建一个类(例如 Player)和一个渲染方法,在渲染时,您在播放器的位置(XYZ)显示图像,

ImageIcon image = new ImageIcon("C:\\Users\\Name\\Pictures\\image.png");
    JLabel imageLabel = new JLabel(image); 
    frame.add(imageLabel);

请记住将其设置为可见并设置其边界,


推荐阅读