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

Sign in to follow this  
DVD

Alterar JPanel quando este está activo num JOptionPane

Recommended Posts

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;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.