code: protected void updateTables()
     {
        byte[] data = m_model.getData();
        int columns = m_model.getColumns();
        int rows = (data.length / columns) + 1;
        int offset = m_model.getOffset();
  
        String[][] hexData = new String[rows][columns];
        String[][] asciiData = new String[rows][columns];
  
        int row = 0;
        int column = 0;
        StringBuilder hexValue = new StringBuilder();
        for (int index = offset; index < data.length; index++)
        {
           int value = data[index];
           hexValue.setLength(0);
           hexValue.append(HEX_DIGITS[(value & 0xF0) >> 4]);
           hexValue.append(HEX_DIGITS[value & 0x0F]);
  
           char c = (char) value;
           if ((c > 200) || (c < 27))
           {
              c = ' ';
           }
  
           hexData[row][column] = hexValue.toString();
           asciiData[row][column] = Character.toString(c);
  
           ++column;
           if (column == columns)
           {
              column = 0;
              ++row;
           }
        }
  
        String[] columnHeadings = new String[columns];
        TableModel hexTableModel = new DefaultTableModel(hexData, columnHeadings)
        {
           @Override public boolean isCellEditable(int r, int c)
           {
              return false;
           }
        };
  
        TableModel asciiTableModel = new DefaultTableModel(asciiData, columnHeadings)
        {
           @Override public boolean isCellEditable(int r, int c)
           {
              return false;
           }
        };
  
        m_model.setSizeValueLabel(Integer.toString(data.length));
        m_model.setHexTableModel(hexTableModel);
        m_model.setAsciiTableModel(asciiTableModel);
        m_model.setCurrentSelectionIndex(0);
        m_model.setPreviousSelectionIndex(0);
     }
docs: Update the content of the tables.