GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Como popular dinamicamente uma JTable com JRadioButton?
Índice dos Fóruns
»
Interface Gráfica
Autor
Mensagem
09/10/2006 12:43:20
Assunto:
Como popular dinamicamente uma JTable com JRadioButton?
Pedrosa
JWizard
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
Estou fazendo algo assim:
package br.com.xpto.view; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; import java.util.List; import javax.swing.*; import javax.swing.table.*; import javax.swing.event.*; class RadioButtonRenderer implements TableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value==null) return null; return (Component)value; } } class RadioButtonEditor extends DefaultCellEditor implements ItemListener { private JRadioButton button; public RadioButtonEditor(JCheckBox checkBox) { super(checkBox); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if (value==null) return null; button = (JRadioButton)value; button.addItemListener(this); return (Component)value; } public Object getCellEditorValue() { button.removeItemListener(this); return button; } public void itemStateChanged(ItemEvent e) { super.fireEditingStopped(); } } public class JRadioButtonTableExample extends JFrame { public JRadioButtonTableExample(){ super( "Telefones Cliente" ); UIDefaults ui = UIManager.getLookAndFeel().getDefaults(); UIManager.put("RadioButton.focus", ui.getColor("control")); DefaultTableModel dm = new DefaultTableModel(); List lista = new ArrayList(); lista.add("11 - 69431231"); lista.add("11 - 88888888"); lista.add("11 - 55555555"); lista.add("11 - 33333333"); lista.add("11 - 22222222"); dm.setDataVector( new Object[][]{ //como carregar isso de uma lista //for(int i=0;i<lista.size();i++){ {"Residencial",new JRadioButton(lista.get(0).toString())}, {"Celular",new JRadioButton(lista.get(1).toString())}, {"Comercial",new JRadioButton(lista.get(2).toString())}, {"Teste",new JRadioButton(lista.get(3).toString())}, {"Teste2",new JRadioButton(lista.get(4).toString())}}, new Object[]{"Tipo","Telefone"}); JTable table = new JTable(dm) { public void tableChanged(TableModelEvent e) { super.tableChanged(e); repaint(); } }; ButtonGroup group1 = new ButtonGroup(); for(int i=0;i<lista.size();i++){ group1.add((JRadioButton)dm.getValueAt(i,1)); } table.getColumn("Telefone").setCellRenderer(new RadioButtonRenderer()); table.getColumn("Telefone").setCellEditor(new RadioButtonEditor(new JCheckBox())); JScrollPane scroll = new JScrollPane(table); getContentPane().add( scroll ); setSize( 400, 170 ); setVisible(true); } public static void main(String[] args) { JRadioButtonTableExample frame = new JRadioButtonTableExample(); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
Eu não saberei a quantidade de números, por isso monto como uma lista:
mas não funciona.
dm.setDataVector( new Object[][]{ //como carregar isso de uma lista //for(int i=0;i<lista.size();i++){ {"Residencial",new JRadioButton(lista.get(0).toString())}, {"Celular",new JRadioButton(lista.get(1).toString())}, {"Comercial",new JRadioButton(lista.get(2).toString())}, {"Teste",new JRadioButton(lista.get(3).toString())}, {"Teste2",new JRadioButton(lista.get(4).toString())}},
Nesse trecho não consigo usar for ou ifs, qual a maneira elegante de resolver isso?
09/10/2006 15:08:24
Assunto:
Re:Como popular dinamicamente uma JTable com JRadioButton?
Pedrosa
JWizard
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
Tentei também iterar a lista e nada.
Nome do arquivo
JRadioButtonTableExample.java
Download
Descrição
Tamanho
3 Kbytes
Baixado:
147 vez(es)
09/10/2006 17:57:57
Assunto:
Re:Como popular dinamicamente uma JTable com JRadioButton?
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
Se você olhou o exemplo do Java Tutorial, o correto é deixar esse campo da sua tabela como Boolean, para ele mostrar um Checkbox (não um Radio Button).
14/05/2010 21:31:00
Assunto:
Re:Como popular dinamicamente uma JTable com JRadioButton?
Jos?Henrique Ventura
Smalltalk
Membro desde: 10/05/2010 15:54:33
Mensagens: 2
Offline
Fala ae brother, ahaha.
Bom esse topico ae é muito antigo, mas como eu passei por esse problema, e consegui resolver dessa forma aqui oh !
DefaultTableModel dm = new DefaultTableModel(); List lista = new ArrayList(); lista.add("11 - 69431231"); lista.add("11 - 88888888"); lista.add("11 - 55555555"); lista.add("11 - 33333333"); lista.add("11 - 22222222"); dm.setDataVector( new Object[][]{ //como carregar isso de uma lista //for(int i=0;i<lista.size();i++){ {"Residencial",new JRadioButton(lista.get(0).toString())}, {"Celular",new JRadioButton(lista.get(1).toString())}, {"Comercial",new JRadioButton(lista.get(2).toString())}, {"Teste",new JRadioButton(lista.get(3).toString())}, {"Teste2",new JRadioButton(lista.get(4).toString())}}, new Object[]{"Tipo","Telefone"});
DefaultTableModel dm = null; dm = new DefaultTableModel(); List<String> bla = new ArrayList<String>(); bla.add("a"); bla.add("s"); bla.add("d"); bla.add("f"); Object[][] array = new Object[ bla.size()][2]; for (int j = 0; j < bla.size(); j++) { array[j][0] = bla.get(j); array[j][1] = new JRadioButton(bla.get(j)); dm.setDataVector(array,new Object[]{"Tipo","Sim","Não"}); }
Zé \o/
This message was edited 1 time. Last update was at 14/05/2010 21:32:07
Índice dos Fóruns
»
Interface Gráfica
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team