hi here it is .,
http://codeguru.earthweb.com/java/articles/665.shtml
It has multiple radio buttons in a button group for a cell. I have used Cell
Renderer and Cell Editor for the table.
To make it simple I have it based on the one already in Codeguru.com that
explains how to use radio buttons as cell editor and renderer.
JButtonGroupTableExample.java
// File: JButtonGroupTableExample.java
/* (swing1.1beta3) */
file://package jp.gr.java_conf.tame.swing.examples;
/**
* @version 1.0 12/03/98
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
public class JButtonGroupTableExample extends JFrame
{
public JButtonGroupTableExample()
{
super( "JButtonGroupTable Example " );
UIDefaults ui = UIManager.getLookAndFeel().getDefaults();
UIManager.put("RadioButton.focus", ui.getColor("control"));
DefaultTableModel dm = new DefaultTableModel();
dm.setDataVector(
new Object[][]{
{"Do you like dogs?","5"},
{"Do you like cats?","4"},
{"Do you like Windows?","1"},
{"Do you like Java?","5"},
{"Do you like Swing?","4"}},
new Object[]{"Questions","Answers"});
JTable table = new JTable(dm) {
public void tableChanged(TableModelEvent e) {
super.tableChanged(e);
repaint();
}
};
table.getColumn("Answers").setCellRenderer(new
RadioButtonRenderer());
table.setRowHeight(30);
table.getColumn("Answers").setCellEditor(new RadioButtonEditor(new
JCheckBox()));
JScrollPane scroll = new JScrollPane(table);
getContentPane().add( scroll );
setSize( 1000, 200 );
setVisible(true);
}
public static void main(String[] args) {
JButtonGroupTableExample frame = new JButtonGroupTableExample();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
class RadioButtonRenderer implements TableCellRenderer {
public JPanel pnl = new JPanel();
public ButtonGroup group1 = new ButtonGroup();
public JRadioButton btnFive = new JRadioButton("Very Very Much");
public JRadioButton btnFour = new JRadioButton("Very Much");
public JRadioButton btnThree = new JRadioButton("Okay");
public JRadioButton btnTwo = new JRadioButton("Not Much");
public JRadioButton btnOne = new JRadioButton("Hate it");
public Component getTableCellRendererComponent(JTable table, Object
value,
boolean isSelected, boolean hasFocus, int row, int
column) {
if (value==null) return null;
group1.add(btnFive );
group1.add(btnFour );
group1.add(btnThree );
group1.add(btnTwo );
group1.add(btnOne );
pnl.add(btnFive );
pnl.add(btnFour );
pnl.add(btnThree );
pnl.add(btnTwo );
pnl.add(btnOne );
btnOne.setSelected(false);
btnTwo .setSelected(false);
btnThree .setSelected(false);
btnFour .setSelected(false);
btnFive .setSelected(false);
switch(Integer.parseInt((String)value))
{
case 1:
btnOne.setSelected(true);
break;
case 2:
btnTwo.setSelected(true);
break;
case 3:
btnThree.setSelected(true);
break;
case 4:
btnFour.setSelected(true);
break;
case 5:
btnFive.setSelected(true);
break;
}
return pnl;
}
}
class RadioButtonEditor extends DefaultCellEditor
implements ItemListener {
public JPanel pnl = new JPanel();
public ButtonGroup group1 = new ButtonGroup();
public JRadioButton btnFive = new JRadioButton("Very Very Much");
public JRadioButton btnFour = new JRadioButton("Very Much");
public JRadioButton btnThree = new JRadioButton("Okay");
public JRadioButton btnTwo = new JRadioButton("Not Much");
public JRadioButton btnOne = new JRadioButton("Hate it");
public RadioButtonEditor(JCheckBox checkBox) {
super(checkBox);
}
public Component getTableCellEditorComponent(JTable table, Object
value,
boolean isSelected, int row, int column) {
if (value==null) return null;
group1.add(btnFive );
group1.add(btnFour );
group1.add(btnThree );
group1.add(btnTwo );
group1.add(btnOne );
pnl.add(btnFive );
pnl.add(btnFour );
pnl.add(btnThree );
pnl.add(btnTwo );
pnl.add(btnOne );
btnOne.setSelected(false);
btnTwo .setSelected(false);
btnThree .setSelected(false);
btnFour .setSelected(false);
btnFive .setSelected(false);
switch(Integer.parseInt((String)value)) {
case 1:
btnOne.setSelected(true);
break;
case 2:
btnTwo.setSelected(true);
break;
case 3:
btnThree.setSelected(true);
break;
case 4:
btnFour.setSelected(true);
break;
case 5:
btnFive.setSelected(true);
break;
}
return pnl;
}
public Object getCellEditorValue() {
if(btnFive.isSelected() == true)
return "5";
if(btnFour.isSelected() == true)
return "4";
if(btnThree.isSelected() == true)
return "3";
if(btnTwo.isSelected() == true)
return "2";
if(btnOne.isSelected() == true)
return "1";
return "";
}
public void itemStateChanged(ItemEvent e) {
super.fireEditingStopped();
}
}
panyam krishna murthy
software engineer
----- Original Message -----
From: Dr. Muhammad Masroor Ali <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, March 27, 2001 12:36 PM
Subject: Radio button in JTable
Hello all, could please direct me to some code snippet and/or guide
which helps me putting radio buttons in a JTable. Tutorial from Sun is
not very elaborate on cell renderers.
Thanks in advance,
--
Dr. Muhammad Masroor Ali
Associate Professor, Department of CSE
BUET, Dhaka-1000, Bangladesh
Consultant, n.:
Someone who'd rather climb a tree and tell a lie than stand
on the ground and tell the truth.
_______________________________________________
Advanced-swing mailing list
[EMAIL PROTECTED]
http://eos.dk/mailman/listinfo/advanced-swing
_______________________________________________
Advanced-swing mailing list
[EMAIL PROTECTED]
http://eos.dk/mailman/listinfo/advanced-swing