O q falta para a imagem aparecer

hola eu tentei faze achei ia rola mas ainda nao to compreendendo…
public class Principal {

	public JFrame frame;
	public float comp, alt, larg, result;
	public JLabel text_comp, text_alt, text_larg;
	public JLabel text_result = new JLabel();
	public JTextField entrada_comp = new JTextField();
	public JTextField entrada_alt = new JTextField();
	public JTextField entrada_larg = new JTextField();;
	public JButton BTN_calcular;
	public float r;

	public Principal() {
		janela();
	}

	public void janela() {
		frame = new JFrame("Cal_L");
		componentes();
		frame.setSize(350, 300);
		frame.setLocationRelativeTo(null);
		frame.setLayout(null);
		frame.getContentPane().add(new Imagens(),BorderLayout.CENTER);
		frame.setVisible(true);

	}

	public void componentes() {

		this.text_comp = new JLabel();
		this.text_comp.setBounds(14, 25, 120, 30);
		this.text_comp.setText("COMPRIMENTO");
		this.frame.add(text_comp);

		this.entrada_comp.setBounds(27, 50, 60, 30);
		this.frame.add(entrada_comp);
		//
		this.text_alt = new JLabel();
		this.text_alt.setBounds(150, 25, 120, 30);
		this.text_alt.setText("ALTURA");
		this.frame.add(text_alt);

		this.entrada_alt.setBounds(143, 50, 60, 30);
		this.frame.add(entrada_alt);
		//
		this.text_larg = new JLabel();
		this.text_larg.setBounds(255, 25, 120, 30);
		this.text_larg.setText("LARGURA");
		this.frame.add(text_larg);

		this.entrada_larg.setBounds(252, 50, 60, 30);
		this.frame.add(entrada_larg);
		//
		this.BTN_calcular = new JButton("Calcular");
		this.BTN_calcular.setBounds(120, 120, 100, 50);

		BTN_calcular.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				calculos();
			}
		});

		this.frame.add(BTN_calcular);
		text_result.setBounds(150, 180, 100, 50);
		frame.add(text_result);
		//

	}

	public void calculos() {
		this.comp = Float.parseFloat(entrada_comp.getText());
		this.larg = Float.parseFloat(entrada_larg.getText());
		this.alt = Float.parseFloat(entrada_alt.getText());

		r = (comp * larg * alt) / 1000;

		text_result.setText("" + r);

	}

	public static void main(String[] args) {

		Principal p = new Principal();

	}

	public class Imagens extends JPanel{
		
		public BufferedImage imageL; 
		
		public void metodoImagem(){
			try {
				imageL = ImageIO.read(getClass().getResource("aquario.gif"));
			} catch (IOException e) {
				e.printStackTrace();
			}
			repaint();
		}
		
		public void paint(Graphics g) {
			g.drawImage(imageL, 100, 100, null);
			g.dispose();
		}

	}
}

Dá algum erro?

não so não aparece

Em qual local do projeto está o arquivo aquario.gif?

na pasta res dentro do projeto e configurei para Biuld path

Manda um print da estrutura do seu projeto pra gente ver.

Você não está chamando o “metodoImagem()” em lugar nenhum, é ele que inicializa sua imagem.

tentei crira um construtor na clase imagem e passar o metodoImagem(); mas da erro.

public Imagens() {
metodoImagem();
}
tentei tambem assim mas nao deu …
Imagens im1 = new Imagens();

public Principal() {
	janela();
}

public void janela() {
	frame = new JFrame("Cal_L");
	
	componentes();

	frame.setSize(350, 300);
	frame.setLocationRelativeTo(null);
//	frame.setLayout(null);
	im1.metodoImagem();
	frame.getContentPane().add(im1,BorderLayout.CENTER);
	
	frame.setVisible(true);

}

Como você está estendendo um JPanel (Swing) ao invés de um Panel (AWT), você precisa sobrescrever o método paintComponent(Graphics) ao invés do paint(Graphics).

Dê uma olhada no meu ImagePanel, o fonte dele pode ser útil pra você.

nada :sweat::confounded: quando acho que intendo, vou e da erro e vejo que não entendi nada vou voltar para outras coisa mis básicas depois tento entender isso.
public void painComponent(Graphics g) {
if (imageL == null) {
super.paintComponent(g);
g.drawImage(imageL, 100, 100, null);

				g.dispose();
				return;
			}
	
		}

O nome do método está errado.

Tá, se a imagem for null você quer renderizar ela?
Reveja sua lógica.

mesmo sem o if nao vai. :cry:

Ajustou o nome do método?
Posta seu código completo.