我在下面创建了一个表,其中第一列中有places的名称作为其entryPoint。我想保留一个文本字段,以便人们可以在表格中搜索他想要查看的地方。 我怎样才能做到这一点?例如:如果我键入" a"在文本字段中,所有地方都以" a"只显示在表格中。
表的json值
connectionRequest = new ConnectionRequest() {
@Override
protected void readResponse(InputStream input) throws IOException {
JSONParser p = new JSONParser();
results = p.parse(new InputStreamReader(input));
responseInout = (Vector) results.get("inout");
for (int i = 0; i < responseInout.size(); i++) {
Hashtable hash = (Hashtable) responseInout.get(i);
String entryPoint = (String) hash.get("entry_point");
String passengerIn = (String) hash.get("passenger_in");
String passengerOut = (String) hash.get("passenger_out");
String vehicleIn = (String) hash.get("vehicle_in");
String vehicleOut = (String) hash.get("vehicle_out");
dataInOut[i][0] = entryPoint;
dataInOut[i][1] = passengerIn;
dataInOut[i][2] = passengerOut;
dataInOut[i][3] = vehicleIn;
dataInOut[i][4] = vehicleOut;
}
}
connectionRequest.setPost(false);
connectionRequest.setUrl("http://capitaleyedevelopment.com/~admin/traffic/api/reports/getReports/2015-12-30");
connectionRequest.setDuplicateSupported(true);
NetworkManager.getInstance().addToQueueAndWait(connectionRequest);
//表
Table table = new MyTable(new DefaultTableModel(columnNamesInOut, dataInOut));
//在textField
中做什么TextField tf = new TextField();
tf.addDataChangeListener(new DataChangedListener() {
@Override
public void dataChanged(int type, int index) {
String searchPlace = tf.getText();
}
});
答案 0 :(得分:0)
您可以使用两种类型的“搜索”:
如果选择数据缩小路径,只需创建一个没有包含所需数据的行的新模型并调用:table.setModel(searchModel);
这将只留下搜索结果。
如果您想要突出显示模式在搜索字段中只需调用table.setModel(table.getModel());
,这将强制表重建。
然后在表中覆盖:
protected Component createCell(Object value, int row, int column, boolean editable) {
Component c = super.createCell(value, row, column, editable);
if(isSearchedValue(value)) {
c.setUIID("SearchResult");
}
return c;
}
然后将SearchResult样式设为您想要的高亮颜色,一切都很好......