2016-01-03 100 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; 
} 

然後風格的信息搜索結果是你想要的高亮顏色,一切都很好...