Try using this code
protected function _construct()
{
$this->_objectId = 'row_id';
$this->_blockGroup = '[Vendor_name]_[module_name]';
$this->_controller = 'adminhtml_[Controller_name]';
parent::_construct();
// for remove btn
$this->buttonList->remove('save');
$this->buttonList->remove('back');
$this->buttonList->remove('reset');
///// for update btn name
$this->buttonList->update('save', 'label', __('[Updateed_btn_name]'));
/// for add new custome btn
$this->addButton(
'<custome_btn_name>',
[
'label' => __('Btn_name_to_show'),
'on_click' => sprintf("location.href = '%s';", $this->getUrl('[Route_name]/[controller_name]/[file_name]')),
'class' => 'primary',
'level' => 1
]
);
}
[Update]
Another way to add button into Ui-Component
Step-1: Create Generic.php at app/code/VendoreName/ModuleName/Block/Adminhtml/Edit/Button
<?php
namespace VendoreName\ModuleName\Block\Adminhtml\Edit\Button;
use Magento\Backend\Block\Widget\Context;
use Magento\Cms\Api\PageRepositoryInterface;
class Generic
{
protected $context;
protected $pageRepository;
public function __construct(
Context $context,
PageRepositoryInterface $pageRepository
) {
$this->context = $context;
$this->pageRepository = $pageRepository;
}
public function getUrl($route = '', $params = [])
{
return $this->context->getUrlBuilder()->getUrl($route, $params);
}
}
Step-2: Create Back.php at app/code/VendoreName/ModuleName/Block/Adminhtml/Edit/Button
<?php
namespace VendoreName\ModuleName\Block\Adminhtml\Edit\Button;
use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
class Back extends Generic implements ButtonProviderInterface
{
public function getButtonData()
{
return [
'label' => __('Back'),
'on_click' => sprintf("location.href = '%s';", $this->getBackUrl()),
'class' => 'back',
'sort_order' => 10,
];
}
public function getBackUrl()
{
return $this->getUrl('*/*/');
}
}
Step-3: Create Reset.php at app/code/VendoreName/ModuleName/Block/Adminhtml/Edit/Button
<?php
namespace VendoreName\ModuleName\Block\Adminhtml\Edit\Button;
use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
class Reset implements ButtonProviderInterface
{
public function getButtonData()
{
return [
'label' => __('Reset'),
'class' => 'reset',
'on_click' => 'location.reload();',
'sort_order' => 30,
];
}
}
Step-4: Create Delete.php at app/code/VendoreName/ModuleName/Block/Adminhtml/Edit/Buttons
<?php
namespace VendoreName\ModuleName\Block\Adminhtml\Edit\Button;
use Magento\Backend\Block\Widget\Context;
use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
class Delete extends Generic implements ButtonProviderInterface
{
protected $context;
public function __construct(
Context $context
) {
$this->context = $context;
}
public function getButtonData()
{
$data = [];
$id = $this->context->getRequest()->getParam('id');
if ($id) {
$data = [
'label' => __('Delete'),
'class' => 'delete',
'on_click' => 'deleteConfirm(\'' . __(
'Are you sure you want to delete this?'
) . '\', \'' . $this->getDeleteUrl() . '\')',
'sort_order' => 20,
];
}
return $data;
}
public function getDeleteUrl()
{
$id = $this->context->getRequest()->getParam('id');
return $this->getUrl('*/*/delete', ['id' => $id]);
}
}
Step-5: Create Save.php at app/code/VendoreName/ModuleName/Block/Adminhtml/Edit/Button
<?php
namespace VendoreName\ModuleName\Block\Adminhtml\Edit\Button;
use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
use Magento\Ui\Component\Control\Container;
class Save extends Generic implements ButtonProviderInterface
{
public function getButtonData()
{
return [
'label' => __('Save'),
'class' => 'save primary',
'data_attribute' => [
'mage-init' => [
'buttonAdapter' => [
'actions' => [
[
'targetName' => 'your_form_ui_component_name.your_form_ui_component_name',
'actionName' => 'save',
'params' => [
false,
],
],
],
],
],
],
];
}
}
Step-6: In your Form Ui-Component file at app/code/VendoreName/ModuleName/view/adminhtml/ui_component add below code:
................................................................................................................
<argument name="data" xsi:type="array">
............................................................................................................
<item name="buttons" xsi:type="array">
<item name="back" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Edit\Button\Back</item>
<item name="delete" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Edit\Button\Delete</item>
<item name="reset" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Edit\Button\Reset</item>
<item name="save" xsi:type="string">VendoreName\ModuleName\Block\Adminhtml\Edit\Button\Save</item>
</item>
............................................................................................................
</argument>
................................................................................................................
I Hope This Helps You.