Problema ao chamar método

Olá.
Estou com um que envolve o seguinte método:

public static String[] Listagem() {
  File diretorio = new File(".//Filmes");
 File[] arquivos = diretorio.listFiles();
 int length = arquivos.length;
    String[] Filme = new String[length];
int i;
String[] frase = new String[length];
            for(i = 0; i < length; ++i){
               Filme[i] = arquivos[i].getName().replace(".txt", "");
frase[i] = String.format(i+1 + " - " + Filme[i]);

            }
return frase;
}

o método está fazendo o que eu quero, que é listar os arquivos da pasta e mostrar apenas o nome do arquivo, sem a extensão.

Porém, quando eu chamo esse método em uma outra classe, acontece o seguinte:

se eu uso:

nomeDeleteStr = JOptionPane.showInputDialog(null,gerente.Listagem(), "Cinema", JOptionPane.QUESTION_MESSAGE);

ele funciona e mostra na janela os arquivos listados.

agora se eu faço algo do tipo(que é o que eu gostaria de fazer):

nomeDeleteStr = JOptionPane.showInputDialog(null,"Escolha uma opção abaixo:\n" + gerente.Listagem(), "Cinema", JOptionPane.QUESTION_MESSAGE);

ele só mostra na janela a frase: Escolha uma opção abaixo: [Ljava.lang.String@723d7c.

Onde estou errando? Como posso fazer funcionar o forma que está dando erro?

valeu

Pelo que você diz parece que na segunda chamada o método toString não está sendo chamado e está sendo mostrado a referência do vetor apenas
adicione .toString() após o Listagem() e teste

não deu certo não
continua o mesmo problema

O que é gerente.Listagem()? Retorna um vetor de Strings?
Abraços

Tenho 2 arquivos:
o Gerenciador.java, onde está o método:

[code] public static String[] Listagem() {
File diretorio = new File(".//Filmes");
File[] arquivos = diretorio.listFiles();
int length = arquivos.length;
String[] Filme = new String[length];
int i;
String[] frase = new String[length];
for(i = 0; i < length; ++i){
Filme[i] = arquivos[i].getName().replace(".txt", “”);
frase[i] = String.format(i+1 + " - " + Filme[i]);

         }  

return frase;
}
[/code]

e o Cinema.java

onde está o

 Gerenciador gerente = new Gerenciador();

e o:

   nomeDeleteStr = JOptionPane.showInputDialog(null,"Escolha uma opção abaixo:\n" + gerente.Listagem(), "Cinema", JOptionPane.QUESTION_MESSAGE);  

isso, ele retorna um vetor de strings.

se eu chamo o metódo direito:

   nomeDeleteStr = JOptionPane.showInputDialog(null,gerente.Listagem(), "Cinema", JOptionPane.QUESTION_MESSAGE); 

ele funciona certinho.
mas eu quero colocar uma mensagem antes de chamar o método
algo tipo

nomeDeleteStr = JOptionPane.showInputDialog(null,"Escolha uma opção abaixo:\n" + gerente.Listagem(), "Cinema", JOptionPane.QUESTION_MESSAGE); 

aí da o erro que citei no primeiro post

Então, entendo muito pouco de Swing mas o que acontece é que ele está mostrando a referencia do seu vetor.
Usa StringBuffer para construir sua string e depois usa-la no JOptionPane.

Algo assim:

[code]StringBuffer msg = new StringBuffer();
msg.add(“Escolha uma opção abaixo: “);
msg.add(”\n”);
for(String s : gerente.Listagem){
msg.add(s);
msg.add("\n");
}

nomeDeleteStr = JOptionPane.showInputDialog(null, msg.toString(), “Cinema”, JOptionPane.QUESTION_MESSAGE);[/code]

Abraços.

Bom o que esta acontecendo é o que o amigo olhos de aguia Nel falou, vc esta exbindo um array nao o conteudo dele correto? Neste caso ele esta exibindo o toString do seu objeto “array”.

Uma outra solução seria vc fazer um for e exibir o conteudo dele por exemplo:

[code]public static void main(String[] args) {

           String concat = "";
       
            String resultado = "";
	
             for(String teste : Listagem()){
		
		
		resultado = concat+= teste +"\n");
		
	}
             
             JOptionPane.showMessageDialog(null, resultado);
}[/code]