Isso n�o � poss�vel porque eu compartilho o mesmo JColorChosser para v�rios modelos..
 
eu tenho uma �rvore (JTree) onde cada n� tem um ColorSelectionModel. Cada vez que o usu�rio clica em um n�, o JColorChooser - que fica vis�vel em um painel � parte - deveria atualizar a cor selecionada, trocando o modelo, etc...
 
ou seja, n�o tenho apenas um modelo e uma vis�o, tenho v�rios modelos que deveriam compartilhar a mesma vis�o se esta funcionasse :^))
 
J� mandei um report de Bug para a SUN e estou esperando para ver se � alguma falha minha ou algum vacilo dos caras l�...
 
valeu,
 
    Felipe Ga�cho 
-----Mensagem original-----
De: Hildeberto Mendon�a [mailto:[EMAIL PROTECTED]
Enviada em: sexta-feira, 12 de dezembro de 2003 17:19
Para: [EMAIL PROTECTED]
Assunto: Re: [cejug-discussao] Problemas usando o JColorChooser

Caro Felipe,

instancie primeiro o model, depois passe-o por par�metro para o construtor de chooser ao instanci�-lo. Retire a linha chooser.setSelectionModel() do construtor da classe.

Veja se funciona.

Atenciosamente,

Hildeberto Mendon�a

Felipe Gaucho wrote:
Aparentemente, o JColorChooser � MVC, mas no exemplo abaixo a interface n�o reage � mudan�as no modelo.. Algu�m tem algum dica do porqu� ?

 
 
 import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.colorchooser.*;
 
public class Test extends JFrame implements ActionListener {
 private JColorChooser chooser = new JColorChooser();
 private DefaultColorSelectionModel model = new DefaultColorSelectionModel();
 private JButton bb = new JButton("do it");
 
 Test() {
  super("?");
  getContentPane().setLayout(new BorderLayout());
  getContentPane().add(chooser, BorderLayout.CENTER);
  getContentPane().add(bb, BorderLayout.NORTH);
  bb.addActionListener(this);
 
  chooser.setSelectionModel(model);
 
  setDefaultCloseOperation(EXIT_ON_CLOSE);
  setSize(300, 300);
  setVisible(true);
 }
 

 public static void main(String[] uu) {
  new Test();
 }
 
 public void actionPerformed(ActionEvent e) {
  model.setSelectedColor(new Color((int)(Math.random()*255), (int)(Math.random()*255), (int)(Math.random()*255)));
  System.out.println("color changed?");
 }
}

-- 
Hildeberto Mendon�a
Mentores Consultoria LTDA.
www.mentores.com.br

Responder a