日期:2014-05-20  浏览次数:20682 次

一个监听事件的问题··谢谢···
import java.awt.BorderLayout;

  import javax.swing.JFrame;
  import javax.swing.JScrollPane;
  import javax.swing.JTable;
  import javax.swing.table.DefaultTableModel;

  public class T
  {
  public static void main(String[] args)
  {
  Object[][] cells = {
  {Boolean.FALSE, "测试1",""},
  {Boolean.FALSE, "测试2",""},
  {Boolean.FALSE, "测试3",""},
  {Boolean.FALSE, "测试4",""},
  {Boolean.FALSE, "测试5",""},};
  String[] columnNames = {"选择", "标题","",""};
  DefaultTableModel model = new DefaultTableModel(cells, columnNames) {
  public Class getColumnClass(int columnIndex)
  {
  return columnIndex == 0 ? Boolean.class : String.class;
  }
  };

  JTable table = new JTable(model);
  JScrollPane sp = new JScrollPane(table);

  JFrame f = new JFrame();
  f.getContentPane().add(sp, BorderLayout.CENTER);
  f.pack();
  f.setLocationRelativeTo(null);
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  f.setVisible(true);
  }
  }



上面用的是复选框··请问我当抚复选框被选择时我应该如何获得这个事件··并得到用户选择时的值····
谢谢···
有详细代码最好··谢谢······

------解决方案--------------------
这种问题LZ参阅JDK即可获得答案。
Java code

//: CheckBox1.java
// Using check boxes
import java.awt.*;
import java.applet.*;

public class CheckBox1 extends Applet {
  TextArea t = new TextArea(6, 20);
  Checkbox cb1 = new Checkbox("Check Box 1");
  Checkbox cb2 = new Checkbox("Check Box 2");
  Checkbox cb3 = new Checkbox("Check Box 3");
  public void init() {
    add(t); add(cb1); add(cb2); add(cb3);
  }
  public boolean action (Event evt, Object arg) {
    if(evt.target.equals(cb1))
      trace("1", cb1.getState());
    else if(evt.target.equals(cb2))
      trace("2", cb2.getState());
    else if(evt.target.equals(cb3))
      trace("3", cb3.getState());
    else 
      return super.action(evt, arg);
    return true;
  }
  void trace(String b, boolean state) {
    if(state)
      t.appendText("Box " + b + " Set\n");
    else
      t.appendText("Box " + b + " Cleared\n");
  }
} //trace()方法将选中的复选框名和当前状态用appendText()发送到文字区域中去,所以我们看到一个累积的被选中的复选框和它们的状态的列表。