Mascara para telefone 8 e 9 digitos

Boa tarde, to tentando colocar uma mascara utilizando o maskformatter que consiga validar tanto numeros com 8 quanto 9 digitos((XX)XXXX-XXXX) || ((XX)XXXXX-XXXX), a aplicação é java puro e utiliza java 6 (Não posso mudar a versão do Java por requisitos do cliente), estou a uma semana travado com essa bobagem e não consigo resolver. Alguem poderia me dar uma luz? Grato.

Manda o código de como vc está tentando fazer.

Mas como seria o critério de escolha da máscara? Pelo número de caracteres digitados? De acordo com o valor de uma checkbox ou combobox?

foneField = new JFormattedTextField((foneMascara("(##)####-#####")));

	private MaskFormatter foneMascara(String mascara) {
		MaskFormatter mf = null;
		try {
			mf = new MaskFormatter(mascara);
		} catch (java.text.ParseException ex) {
		}
		return mf;
	}

pelo numero de caracteres, queria que validasse duas mascaras, uma com 9 e outra com 8.