Programa Java com Erro: missing return statement (declaração de devolução em falta)

Estou bem no início sobre Java, esto tentando entender sobre recursividade. Se alguém puder me ajudar.

Primeira parte do programa:

// Programa de conversão de números de acordo com a base desejada

// Para alterar a fonte do texto
import java.awt.Font;
import javax.swing.*;
import javax.swing.plaf.FontUIResource;

// Exibe janelas
import javax.swing.JOptionPane;

public class Conversao
{
	public static void main(String[] args)
	{
		// Aumentar o tamanho e o tipo de fonte dos textos
		UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("Arial", Font.BOLD, 24)));
		
		// Opções de conversão
		Object[] opcao = {"Decimal para binário", "Binário para decimal"};
		
		String tipo = (String)JOptionPane.showInputDialog(null, "Escolha um tipo de conversão", "Calculadora de conversão de números", 3, null, opcao, opcao);
		
		String numero1 = JOptionPane.showInputDialog(null, "Digite um número", "Calculadora de conversão de números", 3);
		int numero = Integer.parseInt(numero1);
		
		if (tipo.equals("Decimal para binário"))
		{
			ConversaoDB converter = new ConversaoDB();
			converter.Conversao(numero);
			
			String mensagem1 = String.format("Número em decimal: %d%nNúmero em binário: %d", numero, ConversaoDB.Conversao(numero));
			JOptionPane.showMessageDialog(null, mensagem1, "Calculadora de conversão de números", 3);
		}
		
		/*if (tipo.equals("Binário para decimal"))
		{
			ConversaoBD converter = new ConversaoBD(numero);
			System.out.printf("%d", converter.getConversao());
		}*/
	}
}

Segunda parte do programa:

public class ConversaoDB
{
	// Variáveis de intância
	//private int numeroVI;
	
	public static int Conversao(int numeroVL)
	{
		if (numeroVL > 0)
		{
			Conversao(numeroVL / 2);
			//System.out.print(numeroVL % 2);
			return (numeroVL % 2);
		}
	}
}

esse método aí tem que retornar um inteiro, faltou um valor padrão aí pra ele. Tipo assim:

   public static int Conversao(int numeroVL) {
        if (numeroVL > 0) {
            Conversao(numeroVL / 2);
            //System.out.print(numeroVL % 2);
            return (numeroVL % 2);
        }
        return 0;
    }

ou dá uma condição else e retorna outra coisa, nao sei, aí vai da sua regra

Eu fiz a modificação no programa, o porém é que eu não estou encontrando uma maneira de retornar o número em binário na forma de janela. Se for para retornar no CMD do Windows eu consigo, mas não é o que eu quero.

Agora o programa apresenta outro erro. O que estou tentando fazer é uma recursividade na classe ConversaoDB.

Programa parte 1:

// Programa de conversão de números de acordo com a base desejada

// Para alterar a fonte do texto
import java.awt.Font;
import javax.swing.*;
import javax.swing.plaf.FontUIResource;

// Exibe janelas
import javax.swing.JOptionPane;

public class Conversao
{
	public static void main(String[] args)
	{
		// Aumentar o tamanho e o tipo de fonte dos textos
		UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("Arial", Font.BOLD, 24)));
		
		// Opções de conversão
		Object[] opcao = {"Decimal para binário", "Binário para decimal"};
		
		String tipo = (String)JOptionPane.showInputDialog(null, "Escolha um tipo de conversão", "Calculadora de conversão de números", 3, null, opcao, opcao[0]);
		
		String numero1 = JOptionPane.showInputDialog(null, "Digite um número", "Calculadora de conversão de números", 3);
		int numero = Integer.parseInt(numero1);
		
		if (tipo.equals("Decimal para binário"))
		{
			ConversaoDB converter = new ConversaoDB(numero);
			//converter.setConversao(numero);
			
			String mensagem1 = String.format("Número em decimal: %d%nNúmero em binário: OLHAR NO CMD", numero);
			JOptionPane.showMessageDialog(null, mensagem1, "Calculadora de conversão de números", 3);
		}
		
		/*if (tipo.equals("Binário para decimal"))
		{
			ConversaoBD converter = new ConversaoBD(numero);
			System.out.printf("%.0f", converter.getConversao());
		}*/
	}
}

Parte 2:

public class ConversaoDB
{
	public ConversaoDB(int numeroVL)
	{
		if (numeroVL > 0)
		{
			ConversaoDB(numeroVL / 2);
			System.out.print(numeroVL % 2);
		}
	}
}

Recursão só é permitida em métodos.
Você está tentando fazer no construtor.

Muito obrigado @staroski e @rodriguesabner pela ajuda :smile::pray: