|
acabei
de descobrir, via o F�rum da SUN, que o JColorChooser exige uma chamada ao
updateUI() ap�s a troca do modelo....
ent�o
fica assim:
view.setSelectionodel(model);
view.updateUI();
� o
primeiro componente que eu vejo acontecer isso.. Nos demais, rola
normalmente.
valeu,
Felipe Ga�cho
Caro Felipe,
Ainda n�o insisti, mas
sempre que atualizei o modelo mais tarde, para JTable, JList, JTree, entre
outros, d� um problema como esse. Por outro lado, qual seria na necessidade do
m�todo setSelectionModel()? N�o seria necess�rio realizar uma chamada a um
outro m�todo para que a mudan�a se
estabele�a?
Atenciosamente,
Hildeberto Mendon�a
Felipe
Ga�cho wrote:
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
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
--
Hildeberto Mendon�a
Mentores Consultoria LTDA.
www.mentores.com.br
|