Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

DVD

Alterar JPanel quando este está activo num JOptionPane

Mensagens Recomendadas

DVD

Boas tenho um problema, tenho um jpanel que é mostrado ao utilizador via JOptionPane, ou seja, tem um botao que abre um FileChooser para o utilizador escolher uma nova directoria, e queria que quando seja escolhido uma directoria esta aparece-se já no retorno do FileChooser, mas isto não me está a acontecer alguma sugestão?

Tenho a sensação que é por causa daquela historia da Thread que controla o aspecto gráfica da aplicação mas não tenho a certeza, este palpite deve-se a que se fechar a optionpane aparece nesta o que devia.

Já agora o scroll que tenho no codigo em baixo também não funciona alguem saber porque?

Obrigado em avanço

private JPanel som()
{

	final JPanel lookOutPanel = new JPanel(new GridLayout(1,0);
	final JPanel main = new JPanel(new GridLayout(1,0);
	final LinkedList<JCheckBox> listFiles = new LinkedList<JCheckBox>();
	Border b = BorderFactory.createTitledBorder("Look Out Paths");
	lookOutPanel.setBorder(b);

	JCheckBox cb;
	for(String e : lookOutPaths) //lookoutpaths e uma lista de strings
	{
		cb = new JCheckBox(e);
		listFiles.add(cb);
		lookOutPanel.add(cb,BorderLayout.PAGE_END);

	}

	JButton addLookOutButton = new JButton("Add Path");
	JButton remove = new JButton("Remove Selected");

	addLookOutButton.addActionListener(new ActionListener() {

		public void actionPerformed(ActionEvent arg0) {
			JFileChooser fc = new JFileChooser();

			fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

			fc.setFileFilter(new javax.swing.filechooser.FileFilter() {

				public boolean accept(File f) {

					return f.isDirectory();
				}
				public String getDescription() { return "Directory";
				}
			});


			if(fc.showOpenDialog(new JPanel()) != JFileChooser.APPROVE_OPTION) return;



			String path = fc.getSelectedFile().getAbsolutePath();

			lookOutPaths.add(path);

			JCheckBox newer = new JCheckBox(path);
			listFiles.add(newer);
			lookOutPanel.add(newer,BorderLayout.PAGE_END);

		}
	});

	JPanel ts = new JPanel();
	ts.add(addLookOutButton);
	ts.add(remove);
	JScrollPane scroll = new JScrollPane(lookOutPanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);


	//	main.add(scroll,BorderLayout.NORTH);
	main.add(lookOutPanel,BorderLayout.NORTH);
	main.add(ts);

	JOptionPane.showMessageDialog(new JPanel(),main,"oi",JOptionPane.DEFAULT_OPTION);

	return main;
}

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.