⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jradiobuttontableexample2.java

📁 Java中Swing界面库中几个类使用的例子
💻 JAVA
字号:
/* (swing1.1.1) *///package jp.gr.java_conf.tame.swing.examples;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;import javax.swing.event.*;/** * @version 1.2 08/13/99 */public class JRadioButtonTableExample2 extends JFrame {  public JRadioButtonTableExample2(){    super( "JRadioButtonTable Example" );    DefaultTableModel dm = new DefaultTableModel();    dm.setDataVector(      new Object[][]{        {"1",new Integer(-1)},        {"2",new Integer(-1)},        {"3",new Integer(0)},        {"4",new Integer(1)},        {"5",new Integer(2)}},      new Object[]{"Question","Answer"});                         JTable table = new JTable(dm);    String[] answer = {"A","B","C"};        table.getColumn("Answer").setCellRenderer(      new RadioButtonRenderer(answer)    );    table.getColumn("Answer").setCellEditor(      new RadioButtonEditor(new JCheckBox(),                             new RadioButtonPanel(answer))    );    JScrollPane scroll = new JScrollPane(table);    getContentPane().add( scroll );  }    // Cell base  class RadioButtonPanel extends JPanel {    JRadioButton[] buttons;        RadioButtonPanel(String[] str) {      setLayout(new BoxLayout(this, BoxLayout.X_AXIS));      buttons = new JRadioButton[str.length];      for (int i=0; i<buttons.length; i++) {        buttons[i] = new JRadioButton(str[i]);        buttons[i].setFocusPainted(false);        add(buttons[i]);      }          }        public void setSelectedIndex(int index) {      for (int i=0;i<buttons.length;i++) {        buttons[i].setSelected(i == index);      }    }        public int getSelectedIndex() {      for (int i=0; i<buttons.length; i++) {        if (buttons[i].isSelected()) {          return i;        }      }            return -1;          }        public JRadioButton[] getButtons() {      return buttons;    }  }    class RadioButtonRenderer extends    RadioButtonPanel                            implements TableCellRenderer {        RadioButtonRenderer(String[] strs) {      super(strs);    }        public Component getTableCellRendererComponent(JTable table, Object value,                   boolean isSelected, boolean hasFocus, int row, int column) {      if (value instanceof Integer) {        setSelectedIndex(((Integer)value).intValue());      }            return this;    }  }  class RadioButtonEditor extends    DefaultCellEditor                          implements ItemListener {    RadioButtonPanel panel;    public RadioButtonEditor(JCheckBox checkBox,RadioButtonPanel panel) {      super(checkBox);      this.panel = panel;      ButtonGroup buttonGroup = new ButtonGroup();      JRadioButton[] buttons  = panel.getButtons();      for (int i=0; i<buttons.length; i++) {        buttonGroup.add(buttons[i]);        buttons[i].addItemListener(this);      }                      }    public Component getTableCellEditorComponent(JTable table, Object value,                   boolean isSelected, int row, int column) {      if (value instanceof Integer) {        panel.setSelectedIndex(((Integer)value).intValue());      }            return panel;    }    public Object getCellEditorValue() {      return new Integer(panel.getSelectedIndex());    }    public void itemStateChanged(ItemEvent e) {      super.fireEditingStopped();    }  }  public static void main(String[] args) {    JRadioButtonTableExample2 frame = new JRadioButtonTableExample2();    frame.addWindowListener(new WindowAdapter() {      public void windowClosing(WindowEvent e) {        System.exit(0);      }    });    frame.setSize( 230, 140 );    frame.setVisible(true);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -