Me ajudem com o dequeue da fila

**else if (opcao == 2) {
if (fila.isEmpty()) {
Sensores sensorRemovido = fila.dequeue();
System.out.println("Sensor removido da fila: " + sensorRemovido);
} else {
System.out.println(“A fila está vazia. Nenhum sensor para remover.”);
}
Nessa parte era para a fila fazer dequeue mas ela retorna A fila está vazia. Nenhum sensor para remover. **

package listas;

import entidades.Sensores;
import filas.FilaInt;

public class ListaIntCrescente {
	FilaInt fila = new FilaInt();
	
	private static final float PH_MIN = 6;
	private static final float PH_MAX = 7;
	private static final float Potassio_MIN = 100;
	private static final float Potassio_MAX = 400;
	private static final int UMIDADE_MIN = 40;
	private static final int UMIDADE_MAX = 60;
	
	private class NO {
		Sensores dado;
		NO prox;
		
		
	}

	private NO lista = null;

	public void insere(Sensores novoSensor) {
		if (novoSensor.getPh() < PH_MIN || novoSensor.getPh() > PH_MAX || novoSensor.getPotassio() < Potassio_MIN || novoSensor.getPotassio() > Potassio_MAX || novoSensor.getUmidade() < UMIDADE_MIN || novoSensor.getUmidade() > UMIDADE_MAX) {
			fila.enqueue(novoSensor);
		} else {
			NO novo = new NO();
			novo.dado = novoSensor;
			if (lista == null) {
				novo.prox = null;
				lista = novo;
			} else {
				if (novo.dado.getNumeroSensor() < lista.dado.getNumeroSensor()) {
					novo.prox = lista;
					lista = novo;
				} else {
					NO aux = lista;
					boolean achou = false;
					while (aux.prox != null && !achou) {
						if (aux.prox.dado.getNumeroSensor() < novo.dado.getNumeroSensor())
							aux = aux.prox;
						else
							achou = true;
					}
					novo.prox = aux.prox;
					aux.prox = novo;
				}
			}
		}
	}

	public boolean remove(int numeroSensor) {
		boolean achou = false;
		if (lista != null) {
			if (numeroSensor == lista.dado.getNumeroSensor()) {
				achou = true;
				lista = lista.prox;
			} else {
				NO aux = lista;
				while (aux.prox != null && !achou) {
					if (numeroSensor != aux.prox.dado.getNumeroSensor())
						aux = aux.prox;
					else {
						achou = true;
						aux.prox = aux.prox.prox;
					}
				}
			}
		}
		return achou;
	}
	
	public int contaNos() {
		int cont=0;
		NO aux = lista;
		while (aux!=null) {
			cont++;
			aux = aux.prox;
		}
		return cont;
	}
	
	
	
	
	 public void apresenta() {
	        NO aux = lista;
	        System.out.println("\n *** LISTA ***" + "\n");
	        while (aux != null) {
	            System.out.println("\t " + aux.dado.toString());
	            aux = aux.prox;
	        }
	        System.out.println("\n *** FILA ***" + "\n");
	        fila.apresenta();
	    }
	 
	 // public void apresenta() {
		//NO aux = lista;
		//System.out.println("\n *** LISTA ***");
		//while (aux != null) {
			//System.out.println("\t " + aux.dado.toString());
			//aux = aux.prox;
		//}
	//}

}


package aplicacao;

import java.util.Random;
import java.util.Scanner;
import filas.FilaInt;
import entidades.Sensores;
import listas.ListaIntCrescente;

public class Monitora {
	public static final float PH_MIN = 4;
	public static final float PH_MAX = 8;
	public static final float Potassio_MAX = 420;
	public static final float Potassio_MIN = 80;
	public static final int UMIDADE_MIN = 20;
	public static final int UMIDADE_MAX = 70 - UMIDADE_MIN;

	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		ListaIntCrescente lista = new ListaIntCrescente();
		FilaInt fila = new FilaInt();
		Random gerador = new Random();
		int numeroSensor;
		String coordenadasSensores[] = { "47o55�44�W,21o00�34�S", "47o55�42�W,21o00�35�S", "47o55�39�W,21o00�37�S",
				"47o55�44�W,21o00�39�S", "47o55�40�W,21o00�40�S", "47o55�32�W,21o00�34�S", "47o55�28�W,21o00�34�S",
				"47o55�28�W,21o00�38�S", "47o55�33�W,21o00�39�S" };
		int n = coordenadasSensores.length;

		System.out.println(" Coordenadas Iniciais");
		for (int i = 0; i < n; i++) {
			System.out.println("Sensor " + i + ": " + coordenadasSensores[i]);
		}

		/*
		 * exemplo de gea��o de valores aleat�rios para simular altera��o de medidas dos
		 * sensores
		 */
		for (int i = 0; i < n; i++) {
			numeroSensor = i+1;
			int umidade = gerador.nextInt(UMIDADE_MAX) + UMIDADE_MIN;
			System.out.println("Valor inteiro entre " + UMIDADE_MIN + " e " + UMIDADE_MAX + ": " + umidade);
			
			System.out.println("\nExemplo de valores de pH");
			float ph = PH_MAX - (PH_MIN * ((float) gerador.nextInt(10) / 10));
			System.out.println("Valor real entre " + PH_MIN + " e " + PH_MAX + ": " + ph);
			float potassio = Potassio_MIN + (Potassio_MAX - Potassio_MIN) * ((float) gerador.nextInt(10) / 10);
			Sensores novoSensor = new Sensores(numeroSensor,coordenadasSensores[i], umidade, ph, potassio);
			lista.insere(novoSensor);
		}
		
		System.out.println("\nDados armazenados na lista:");
        lista.apresenta();
        
        int opcao = 0;
        
        do {
        	System.out.println(gerarMenu());
        	opcao = teclado.nextInt();
        	switch(opcao) {
        	case 1:
        		inserirSensor(lista);
        		break;
        	case 2:
        		removerSensor(lista, fila);
        		break;
        	case 3:
        		listarSensores(lista);
        		break;
        	}
        } while(opcao != 6);
        System.out.println("Selecione uma opção");

		/*
		 * Esse trecho de programa pode ser usado para a implementa��o de testes com
		 * coordenadas e valores de medidas em intervalos espec�ficos
		 */
        
        //gerar menu//
        
	}

	private static void listarSensores(ListaIntCrescente lista) {
	    System.out.println("Sensores na lista e na fila:");
	    lista.apresenta();
	}
	
	private static void inserirSensor(ListaIntCrescente lista) {
		
		Scanner teclado = new Scanner(System.in);
		int numeroSensor;
		String coordenadasSensores;
		int umidade;
		float ph, potassio;
		
		System.out.print("\nInforme o número do sensor: ");
		numeroSensor = teclado.nextInt();
		System.out.print("Informe as coordenadas do sensor, ex: (47o55'44''W,21o00'34''S): ");
		coordenadasSensores = teclado.nextLine();
		teclado.nextLine();
		System.out.print("Insira a umidade: ");
		umidade = teclado.nextInt();
		System.out.print("Insira o PH: ");
		ph = teclado.nextFloat();
		System.out.print("Insira o ppm do potássio: ");
		potassio = teclado.nextFloat();   
		Sensores novoSensor = new Sensores(numeroSensor,coordenadasSensores, umidade, ph, potassio);
	}
	
	private static void removerSensor(ListaIntCrescente lista, FilaInt fila) {
		
	    Scanner teclado = new Scanner(System.in);
	    int opcao, numeroSensor;
	    
	    System.out.println("Digite 1 para remover itens da lista e 2 para itens da fila: ");
	    opcao = teclado.nextInt();
	    
	    if (opcao == 1) {
	        System.out.println("Selecione o sensor que deseja remover: ");
	        numeroSensor = teclado.nextInt();
	        boolean sensorRemovido = lista.remove(numeroSensor);
	        if (sensorRemovido) {
	            System.out.println("Sensor removido com sucesso.");
	        } else {
	            System.out.println("Nenhum sensor com o número especificado foi encontrado.");
	        }
	    } else if (opcao == 2) {
	        if (fila.isEmpty()) {
	        	Sensores sensorRemovido = fila.dequeue();
	            System.out.println("Sensor removido da fila: " + sensorRemovido);
	        } else {
	            System.out.println("A fila está vazia. Nenhum sensor para remover.");
	        }
	    } else {
	        System.out.println("Opção inválida. Por favor, selecione 1 ou 2.");
	    }
	}






	
	public static String gerarMenu() {
		String aux = "\nMonitorador de sensores" + "\n";
		aux += "1. Inserir sensor" + "\n";
		aux += "2. Remover sensor" + "\n";
		aux += "4. Pesquisar sensor" + "\n";
		aux += "5. Listar todos os sensores" + "\n";
		aux += "6. Encerrar programa";
		return aux;
	}
}
package entidades;

public class Sensores {
	private int numeroSensor;
	private String coordenadas;
	private int umidade;
	private float ph;
	private float potassio;
	
	

	public Sensores(int numeroSensor, String coordenadas, int umidade, float ph, float potassio) {
		this.numeroSensor = numeroSensor;
		this.coordenadas = coordenadas;
		this.umidade = umidade;
		this.ph = ph;
		this.potassio = potassio;
	}

	
	public int getNumeroSensor() {
		return numeroSensor;
	}


	public String getCoordenadas() {
		return coordenadas;
	}

	public int getUmidade() {
		return umidade;
	}

	public float getPh() {
		return ph;
	}

	public float getPotassio() {
		return potassio;
	}


	@Override
	public String toString() {
		return "Sensor " + numeroSensor + ": coordenadas = " + coordenadas + ", umidade = " + umidade
				+ ", ph = " + ph + ", potassio = " + potassio;
	}

	
	
	
}

package filas;

import entidades.Sensores;

public class FilaInt {
	private class NO {
		Sensores dado;
		NO prox;
	}

	NO ini, fim;

	public void init() {
		ini = fim = null;
	}

	public boolean isEmpty() {
		if (ini == null && fim == null)
			return true;
		else
			return false;
	}

	public void enqueue(Sensores sensor) {
		NO novo = new NO();
		novo.dado = sensor;
		if (isEmpty())
			ini = novo;
		else
			fim.prox = novo;
		fim = novo;
	}

	public Sensores dequeue() {
	    Sensores v = ini.dado;
	    ini = ini.prox;
	    if (ini == null)
	        fim = null;
	    return v;
	}


	public Sensores first() {
		return (ini.dado);
	}

	public void apresenta() {
		NO aux = ini;
		while (aux != null) {
			System.out.println("\t " + aux.dado.toString());
			aux = aux.prox;
		}
	}
}

Essa lógica está errada, você está fazendo:

se a fila está vazia então
	Sensores sensorRemovido = fila.dequeue();
	System.out.println("Sensor removido da fila: " + sensorRemovido);
senão
	System.out.println("A fila está vazia. Nenhum sensor para remover.");

Deveria ser “se a fila NÃO está vazia”

mas já fiz isso e em vez de ele remover da fila ele dá a mensagem:

System.out.println(“A fila está vazia. Nenhum sensor para remover.”);

if (!fila.isEmpty()) {
Sensores sensorRemovido = fila.dequeue();
System.out.println("Sensor removido da fila: " + sensorRemovido);
} else {
System.out.println(“A fila está vazia. Nenhum sensor para remover.”);

Bom, então sua fila está vazia, aí realmente não tem o que remover.