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

📄 filterframe.java~34~

📁 jbuilder2006一书的所有源代码
💻 JAVA~34~
字号:
package oftenuse;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.dx.sql.dataset.*;
import com.borland.dbswing.*;
import com.borland.dx.dataset.*;
import com.borland.dx.text.VariantFormatter;

public class FilterFrame extends JFrame {
  JPanel contentPane;
  Database database1 = new Database();
  QueryDataSet queryDataSet1 = new QueryDataSet();
  JdbNavToolBar jdbNavToolBar1 = new JdbNavToolBar();
  TableScrollPane tableScrollPane1 = new TableScrollPane();
  JdbTable jdbTable1 = new JdbTable();
  String columnName = "";
  String columnValue = "";
  VariantFormatter formatter;
  DBDisposeMonitor dBDisposeMonitor1 = new DBDisposeMonitor();
  JPanel jPanel1 = new JPanel();
  JdbComboBox columnNameComboBox = new JdbComboBox();
  JButton filterBtn = new JButton();
  JdbTextField columnValueTextField = new JdbTextField();
  BorderLayout borderLayout1 = new BorderLayout();

  public FilterFrame() {
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(446, 313));
    this.setTitle("筛选示例");
    //建立与SQLServer的books数据库的联接
    database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor(
        "jdbc:microsoft:sqlserver://bemyfriend:1433;DatabaseName=books", "sa",
        "", false, "com.microsoft.jdbc.sqlserver.SQLServerDriver"));
    //取得bookcategory数据表的记录
    queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(
        database1, "select * from bookcategory", null, true, Load.ALL));
    //为QueryDataSet类加入筛选接收器
    queryDataSet1.addRowFilterListener(new com.borland.dx.dataset.
                                       RowFilterListener() {
      public void filterRow(ReadRow row, RowFilterResponse response) throws
          DataSetException {
        queryDataSet1_filterRow(row, response);
      }
    });
    //为下拉列表框添加字段名
    String[] columnNames = {"id", "categoryName", "categoryDescription"};
    for(int i = 0; i < columnNames.length; i++){
      columnNameComboBox.addItem(columnNames[i]);
    }
    //设置表格的数据源
    jdbTable1.setDataSet(queryDataSet1);
    //设置数据清除类的关联窗口
    dBDisposeMonitor1.setDataAwareComponentContainer(this);
    filterBtn.setText("筛选");
    filterBtn.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        filterBtn_actionPerformed(e);
      }
    });
    //为窗口加入各个控件
    columnNameComboBox.setPreferredSize(new Dimension(100, 22));
    columnValueTextField.setPreferredSize(new Dimension(100, 22));
    contentPane.add(jdbNavToolBar1, BorderLayout.SOUTH);
    contentPane.add(tableScrollPane1,  BorderLayout.CENTER);
    contentPane.add(jPanel1,  BorderLayout.NORTH);
    jPanel1.add(columnNameComboBox, null);
    jPanel1.add(columnValueTextField, null);
    jPanel1.add(filterBtn, null);
    tableScrollPane1.getViewport().add(jdbTable1, null);
  }

  protected void processWindowEvent(WindowEvent e) {
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
  //按钮的单击方法
  void filterBtn_actionPerformed(ActionEvent e) {
    try {
      //取得输入的字段名
      columnName = (String)columnNameComboBox.getSelectedItem();
      //取得输入的字段值
      columnValue = columnValueTextField.getText();
      //根据字段名取得字段
      Column column = queryDataSet1.getColumn(columnName);
      //根据字段取得格式类,然后在过滤方法中使用该格式类将相应的对象转换为字符串
      formatter = column.getFormatter();
      queryDataSet1.refilter();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  //过滤方法
  void queryDataSet1_filterRow(ReadRow row, RowFilterResponse response)
                                                     throws DataSetException {
    Variant variant = new Variant();
    try {
      //如果下述变量长度等于0,添加所有的数据
      if (columnName == null || columnValue == null ||
          columnName.length() == 0 || columnValue.length() == 0)
        //添加所有数据的方法
        response.add();
      else {
        //取得相应字段名的数据
        row.getVariant(columnName, variant);
        //将该数据转变为字符串
        String s = formatter.format(variant);
        //如果字段值包括输入数值,那么显示该记录add,否则隐藏该记录ignore
        if (s.indexOf(columnValue) > -1)
          response.add();
        else response.ignore();
        }
      }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
}

⌨️ 快捷键说明

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