• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

amiloM1425

JFileChooser Drag não funciona

9 mensagens neste tópico

Olá a todos,

Num JFileChooser que estou a utilizar é possível seleccionar e abrir vários ficheiros ao mesmo tempo, o que seria óptimo deixar que o utilizador arrastasse o rato sobre os ficheiros que pretende abrir para os seleccionar.

Já tenho o seguinte código mas não estou a conseguir seleccionar vários ficheiros por "arrasto".

fc.setMultiSelectionEnabled(true);
fc.setDragEnabled(true);

Estará a faltar-me definir alguma propriedade ou é bug do JAVA?

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É mais uma falha de conhecimento ou de compreensão do programador ;)

Drag & Drop, que é o que esse método activa, é um sistema que permite arrastar e largar componentes de e para outros componentes Swing ou outras aplicações. Isto é, o que estás a activar é a possibilidade de arrastares um ficheiro ou pasta para fora do JFileChooser e o colocares dentro de outro componente, seja na mesma aplicação, em aplicações diferentes, ou directamente em sistemas do sistema operativo que suportem Drag & Drop, como o desktop.

Esse método não possibilita a criação de caixas de selecção para seleccionar um conjunto de ficheiros, permite sim, arrastar um ficheiro, ou conjunto de ficheiros para dentro de outro ficheiro ou para fora desse componente e para dentro de outro componente. Por exemplo, podias ter um JFileChooser colocado numa frame, que estaria sempre aberto, e permitir ao utilizador seleccionar um ficheiro, arrastá-lo para dentro de um JTextField, e o campo de texto ficar preenchido automaticamente com o caminho para o ficheiro. Ou arrastares um ficheiro de uma imagem para um painel e a imagem aparecer automaticamente no fundo do painel.

Que eu saiba, os Look-and-Feel comuns não permitem fazer o que pretendes, nem o Look-and-Feel do Windows tem essa possibilidade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É mais uma falha de conhecimento ou de compreensão do programador ;)

Pois, realmente esqueci-me de colocar essa hipótese  :)

Antes de mais obrigado pelo esclarecimento sobre o que é efectivamente o Drag & Drop  ;)

Em relação à funcionalidade, é uma pena não dar para seleccionar vários através de uma caixa de selecção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que eu conheça, não existe propriedade nenhuma para esse efeito, é algo que está dependente do L&F e não conheço nenhum que implemente essa opção. Mas isso não quer dizer que não dê, apenas que eu não conheço ;)

Não sei é se compensará o tempo de pesquisa pela pouco que vais ganhar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que eu conheça, não existe propriedade nenhuma para esse efeito, é algo que está dependente do L&F e não conheço nenhum que implemente essa opção. Mas isso não quer dizer que não dê, apenas que eu não conheço :)

Não sei é se compensará o tempo de pesquisa pela pouco que vais ganhar.

Sim, não vou estar a bater muito mais contra isto, até porque a funcionalidade que envolve abrir os ficheiros é trabalho para ir durar uns dias lol :D

Fui ver se de facto o do windows não permite a selecção de vários ficheiros ao mesmo tempo com o rato mas funciona. O que testei foi o do Word e dá para seleccionar vários ficheiros e abri-los todos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando falei que não conhecia era relacionado com a tecnologia Java, os L&F que existem por omissão não permitem isso, outras aplicações permitem sim, mas neste caso não te ajudam muito porque quem está a controlar o que um componente pode ou não fazer é o L&F definido para a aplicação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando falei que não conhecia era relacionado com a tecnologia Java, os L&F que existem por omissão não permitem isso, outras aplicações permitem sim, mas neste caso não te ajudam muito porque quem está a controlar o que um componente pode ou não fazer é o L&F definido para a aplicação.

Hum, ok.

Já agora quando falas nos L&F relacionados com a tecnologia Java falas no plural, há portanto mais do que o típico JFileChooser é isso?

E já agora, é possível mudar o aspecto do JFileChooser? Os textos e os tool tips dos botões sei que dá.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Look-and-Feel é um conjunto de regras que definem como os componentes se comportam, que aspecto têm, como regem às acções do utilizador, etc., Wikipedia: http://en.wikipedia.org/wiki/Pluggable_look_and_feel

Em Java existe o conceito de "Pluggable Look and Feel", isto é, as características como o comportamento dos componentes e o seu aspecto não são definidas pelos componentes mas sim por um sistema separado, que pode ser alterado em tempo de execução, daí o "pluggable", e trocado por outro. L&F de Java não são o mesmo que skins, uma skin muda apenas o aspecto genérico, o L&F faz muito mais, e um L&F pode fazer com que uma aplicação se comporte de forma completamente diferente do que outro L&F determina.

Para veres mais sobre L&F em Java, com alguns exemplos, o primeiro do L&F oficial do Java, e que corre em qualquer plataforma, o segundo o L&F de Windows, que está apenas disponível para aplicações que estejam a executar em sistemas operativos Windows, não executam noutros SOs.

http://java.sun.com/docs/books/tutorial/ui/features/components.html

http://java.sun.com/docs/books/tutorial/ui/features/compWin.html

Exemplos de L&F diferentes, e alterações que provocam nos componentes:

http://java.sun.com/docs/books/tutorial/ui/features/plaf.html

Não existe mais que um típico JFileChooser, o componente será sempre o mesmo, quando falo em mais que um L&F, falo em mais que um conjunto de regras que, quando aplicadas ao JFileChooser, lhe alteram, entre outras coisas, o comportamento e o aspecto.

Claro que podem existir mais implementações de JFileChoosers, em bibliotecas externas, mas não me refiro a isso, ao falar de L&F estou a falar de regras que podem ser aplicadas aos componentes que são padrão no Swing.

Em todos os JDK tens, se não os estou a contar mal, 5 L&Fs diferentes, um para cada sistema operativo principal, Windows, Mac OS, Linux, o oficial do Java, chamado Metal e, no Java 6 update 10, o Synth, que é um L&F há muito esperado e há muito iniciado que só agora foi lançado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito obrigado pelo esclarecimento. Já aprendi mais qualquer coisa hoje :)

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora