📄 filterframe.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 + -