2016-01-03 101 views
2

我已经创建了一个下面的表格,其中第一列中包含地点名称作为其入口点。我想保留一个文本框,以便可以搜索他想在表格中查看的位置。 我该怎么做?例如:如果我在文本字段中输入“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 tf = new TextField(); 
tf.addDataChangeListener(new DataChangedListener() { 

      @Override 
      public void dataChanged(int type, int index) { 

       String searchPlace = tf.getText(); 

      } 
     }); 

回答

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; 
} 

然后风格的信息搜索结果是你想要的高亮颜色,一切都很好...