Atribuir a cada jcombobox(celula) dakela coluna valores diferentes?

10 respostas
DANM

normalmente …vc consegue inserir um componente seja ele, jcheckbox,jcombobox…etc… porem issw é feito em uma coluna especifica…onde todas as colunas com um jcombobox por exemplo recebem os mesmos valores…

o problema ehh…como eu conseguiria…atribuir a cada jcombobox(celula) dakela coluna valores diferentes?

conto com vcs galera

agradecido

t+

:smiley:

10 Respostas

C

Ótima pergunta, me vejo com o mesmo problema…

Ironlynx

Uh, eu não entendi a pergunta.Vc quer dizer, colocar os valores em cada célula “On the fly”(dinamicamente) ou tipo mexe em uma combo numa célula, e atualiza a combo enm outra???Explica melhor!

C

Pelo o que eu entendi, cada ComboBox vai receber um valor diferente, dinamicamente ou também ser atualizado em função dos valores de outra coluna da tabela. No final, acho que é quase a mesma idéia.

Por exemplo:

TableColumn coluna = jTable1.getColumnModel().getColumn( 0 );
String numeros = { "1", "2", "3" };
JComboBox número = new JComboBox( numeros );
coluna.setCellEditor( new DefaultCellEditor( numero ) );

Isso deixa toda a coluna 0 da minha JTable com comboboxes de valores 1, 2, 3.

Mas, por exemplo, se na linha 3 da coluna 0 eu quiser um ComboBox com os valores 8, 9, 10 ?
Numa mesma coluna teria comboboxes de conjuntos de valores diferentes…
Bom, não sei se ficou mais claro…

Grato a quem colaborar…

DANM

explikando melhor o problema…

Seria basicamenteo seguinte…nos teriamos uma coluna…certo…onde toda essa coluna teria um jcombobox…
Porem todos essas celuas da coluna possui um jcombobox…com os mesmos valores definidos…

Entao gostaria q cada jcombobox localizado em cada celula…dessa coluna…escolhida…apresenta-se um conjunto de valores diferentes?

C

Bom, pelo tanto que já pesquisei e tentei, das mais diversas formas, acredito que fazer isso não seja tarefa das mais fáceis =)

Em todo caso, quem puder dar uma ajuda aí nessa questão, será muito útil!

Ironlynx
Deve ser a idade, não liga não, o tio Iron tá ficando meio burro, mas até agora eu não consegui vizualizar 100% o que vcs querem. :lol: O que eu tô entendendo, é tipo, mudar um valor numa célula, alterar o valor em outra é isso?Tipo mexer numa combo e alterar a segunda???Exemplo:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
import java.util.*;
 
public class ComboBoxTwo extends JFrame implements ActionListener
{
	private JComboBox mainComboBox;
	private JComboBox subComboBox;
	private Hashtable subItems = new Hashtable();
 
	public ComboBoxTwo()
	{
		String[] items = { "Select Item", "Color", "Shape", "Fruit" };
		mainComboBox = new JComboBox( items );
		mainComboBox.addActionListener( this );
 
		//  In JDK1.4 this prevents action events from being fired when the
		//  up/down arrow keys are used on the dropdown menu
 
		mainComboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
		getContentPane().add( mainComboBox, BorderLayout.WEST );
 
		//  Create sub combo box with multiple models
 
		subComboBox = new JComboBox();
		subComboBox.setPrototypeDisplayValue("XXXXXXXXXXXX"); // JDK1.4
		getContentPane().add( subComboBox, BorderLayout.EAST );
 
		String[] subItems1 = { "Select Color", "Red", "Blue", "Green" };
		subItems.put(items[1], subItems1);
 
		String[] subItems2 = { "Select Shape", "Circle", "Square", "Triangle" };
		subItems.put(items[2], subItems2);
 
		String[] subItems3 = { "Select Fruit", "Apple", "Orange", "Banana" };
		subItems.put(items[3], subItems3);
	}
 
	public void actionPerformed(ActionEvent e)
	{
		String item = (String)mainComboBox.getSelectedItem();
		Object o = subItems.get( item );
 
		if (o == null)
		{
			subComboBox.setModel( new DefaultComboBoxModel() );
		}
		else
		{
			subComboBox.setModel( new DefaultComboBoxModel( (String[])o ) );
		}
 
		//  make sure popup is closed when 'isTableCellEditor' is used
 
		mainComboBox.hidePopup();
	}
	
          public static void main(String[] args){	
		  JFrame frame = new ComboBoxTwo();
		   frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
		   frame.pack();
		   frame.setLocationRelativeTo( null );
	       frame.setVisible( true );			
	 }
}
C

Quaaaaase lá, tio Iron :lol:

É exatamente isso o que queremos fazer, só que dentro de uma linha de uma JTable =)

Por exemplo, ao alterar o valor de uma ComboBox na coluna A, linha 2, outra combobox, na coluna B, também na linha 2, teria seu valor alterado.

Mas somente a combo na coluna B, linha 2, não todas as combos da coluna B :stuck_out_tongue:

Obrigado pelo interesse em ajudar!

DANM

Como Carnevalli disse tio Iron…nao seria exatamente isso q estas nos atordoando…rksskrr

mais de kalker forma…obrigado pelo empenho em tentar nos ajudar
agradecido…

Agora essa dika aki pra Carnevalli…
Um brother aew do guj…mim indicou esse site

http://www.crionics.com/products/opensource/faq/swing_ex/SwingExamples.html

eu dei uma olhada assim de leve…tem muitos exemplo interessantes…lah…
talvex ateh tenha a solucao de nosso problema…
ew ia ateh ver lah…mais tow no meio de um projeto meio grandin…e o tempo esta fikando curto
aew tow vendo outras coisas relacionadas ao projeto…q no momento sao mais importantes…

mais fika o site aew…pra vc dar uma olhada…kalker koisa vc fika se comunicando por aki

valewxxx galera

falow carnevalli

C

Valeu DANM, pela dica!

Muito bom esse link, tem o problema resolvido, de fato.

Grato!

Ironlynx

Legal que vcs mataram o problema! :smiley:
Depois seria interessante por um snippet de como vcs fizeram.
Eu já ia por esse exemplo http://exampledepot.com/egs/javax.swing.table/ComboBox.html e dizer para vcs “amarrarem” a combobox uma na outra e depois vincularem nas suas células.Aí era só adaptar o que eu pus acima.(Por exemplo por uma combo principal, e deixar uma subcombo oculta para uma vez que for clicada a principal ser ativada ela-puderia ficar numa Hashtable da vida)

Criado 22 de abril de 2008
Ultima resposta 25 de abr. de 2008
Respostas 10
Participantes 3