java无法解析类型Jpanel,java - 无法将图像加载到JPanel中吗? - 堆栈内存溢出

这是一个关于Java新手在开发GUI应用程序时遇到的问题,该程序旨在模拟四辆赛车,允许用户设置每辆车的速度。问题在于图片无法在程序中正确显示。代码中已经创建了JFrame和JPanel,并设置了布局,但图片的加载和定位尚未解决。开发者使用了JTextField来获取车速,并尝试在JPanel上绘制图形,但缺少关于如何在组件上添加和显示图片的指导。
摘要由CSDN通过智能技术生成

我是Java学习的新手,我被要求开发一个GUI应用程序,该程序可以模拟四辆赛车,您可以设置每辆车的速度。 以下是我的代码,它可以运行,但无法显示图片。 对于将图片放置在什么位置(在JPanel或JFrame中),我不太了解。 有人可以帮我完成这个项目吗? 提前致谢。

import JavaFX.scene.canvas.GraphicsContext;

import JavaFX.scene.image.ImageView;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.*;

public class Main {

static class program extends JFrame {

//create two JPanel objects.

JPanel topRow = new JPanel();

JPanel lowRow = new JPanel() {

public void paint(Graphics graphics) {

//draw a graph

graphics.drawRect(5, 25, 490, 240);

graphics.drawLine(5, 85, 495, 85);

graphics.drawLine(5, 145, 495, 145);

graphics.drawLine(5, 205, 495, 205);

}

};

private JTextField carped_a = new JTextField();

String s1 = carped_a.getText();//there I want to change this to the //car's speed

private JTextField carped_b = new JTextField();

String s2 = carped_b.getText();

private JTextField carped_c = new JTextField();

String s3 = carped_c.getText();

private JTextField carped_d = new JTextField();

String s4 = carped_d.getText();

program() {

super("program");

setLookAndFeel();

setResizable(false);

setSize(515, 330);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

BorderLayout layout = new BorderLayout();

setLayout(layout);

topRow.setBounds(5, 5, 490, 40);

GridLayout grid = new GridLayout(1, 4, 20, 10);

topRow.setLayout(grid);

JLabel carLabel_a = new JLabel("car 1: ", JLabel.RIGHT);

topRow.add(carLabel_a);

carped_a.setEditable(true);

topRow.add(carped_a);

JLabel carLabel_b = new JLabel("car 2:", JLabel.RIGHT);

topRow.add(carLabel_b);

carped_b.setEditable(true);

topRow.add(carped_b);

JLabel carLabel_c = new JLabel("car 3:", JLabel.RIGHT);

topRow.add(carLabel_c);

carped_c.setEditable(true);

topRow.add(carped_c);

JLabel carLabel_d = new JLabel("car 4:", JLabel.RIGHT);

topRow.add(carLabel_d);

carped_d.setEditable(true);

topRow.add(carped_d);

add(topRow, BorderLayout.NORTH);

add(lowRow, BorderLayout.CENTER);

}

private void setLookAndFeel() {

try {

UIManager.setLookAndFeel(

"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

} catch (Exception exc) {

// ignore error

}

}

}

static class Car extends JPanel{

JLabel carLabel =new JLabel();

Car(int a, int b) {

carLabel.setBounds(a,b,50,40);

this.add(carLabel);

ImageIcon img=new ImageIcon("car.jpg");

carLabel.setIcon(img);

carLabel.setText(null);

}

}

public static void main(String[] args) {

program program1= new program();

Car car1= new Car(5,45);

}

}

我正在使用IntelliJ IDEA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值