【问题标题】:how to change the style of a button on release outside of button boundaries如何在按钮边界外释放时更改按钮的样式
【发布时间】:2016-08-04 20:18:58
【问题描述】:

我想让按钮在按下时突出显示,而在释放时取消突出显示 (?)。现在我已经通过覆盖Button子类中的pressed函数来实现按下部分,通过覆盖两个释放函数来实现释放部分。但是,我有一个问题,当您按下按钮时,拖动鼠标并将其释放到按钮之外,按钮保持突出显示。我想尝试通过覆盖 dragFinished 来做同样的事情,但这对我不起作用,所以我正在寻找另一种方法。

@Override
public void pressed(){
    super.pressed();
        Style style = getParent().getStyle();
        style.setBorder(Border.createLineBorder(1, 1416152));
        updateParentStyle(style);
}

@Override
public void released(){
    super.released();
        Style style = getParent().getStyle();
        style.setBorder(Border.createEmpty());
        updateParentStyle(style);
}

【问题讨论】:

  • 你能展示一些你迄今为止尝试过的代码吗?
  • 我添加了代码,但上面的代码实际上已经可以工作了......我更多的是寻找关于我可以采取的新策略来处理拖动和释放问题的建议,因为我不是对整个 API 太熟悉了。我尝试用pointerDragged做与上面完全相同的事情,但没有效果。我也用dragFinished试过了,但我无法使用那个功能。

标签: codenameone


【解决方案1】:

你不需要这样做。

只需覆盖 the theme 中按钮的“已按下”状态,以使用不同的边框,这是“正确的方式”,或者通过样式执行您所做的操作:

myButton.getPressedStyle().setBorder(Border.createLineBorder(1, 1416152));
myButton.getUnselectedStyle().setBorder(Border.createEmpty());
myButton.getSelectedStyle().setBorder(Border.createEmpty());

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2021-10-16
    相关资源
    最近更新 更多