我正在使用带有默认UI的Swing(没有任何特殊皮肤)。
如何使某些按钮/文本字段更亮或更苍白?这意味着用户预期/不预期(尽管未完全禁用)按下按钮。
示例:用户更改了字段 - "保存"按钮变得更亮(例如,绿色)。状态为"编译失败" - "执行"按钮苍白(尽管用户仍然可以执行以前版本的某些内容)。用户填写了"密码"字段 - 他希望填写"密码确认" - 所以它变得明亮。
- 我有:{正常,禁用,不可见}
- 我想要:{明亮,正常,苍白,残疾,隐形}。
如何正确地制作它,而不用绘画的东西来破解,内容和呈现的分离?我希望它看起来很好,即使用户覆盖了系统中的颜色设置。我应该使用其他工具包吗?
我希望像我为给定控件设置提示,然后皮肤读取提示并应用其他外观选项(例如更亮的背景),而无需处理具体颜色。可能一个皮肤将使用其他背景,而其他一些皮肤将使用其他字体来实现此效果。就像在启用/禁用的情况下一样,但更灵活。
只需使用 setBackground() 更改颜色以匹配组件的状态。 甚至可以创建一个自定义组件,该组件具有更改状态的方法,并且知道哪种颜色与该状态匹配。
我不确定我是否从您提供的示例中看到您要实现的价值。如果您为用户提供与其预期用户体验不同的功能,用户是否会对应用程序的工作方式感到困惑?
如果用户尚未更改字段,则可以完全禁用保存按钮。如果没有进行任何更改,能够保存有什么价值。或者,如果你仍然死心塌地地做出这种区分,你能用另一种方式来做吗?也许是一个可视队列、已更改字段旁边的图标、单元格突出显示或附加到窗口名称文本末尾的 *,以显示窗口中存在未保存的更改,也许?
从纯粹的用户体验的角度来看,我认为你不想弄乱人们期望应用程序的行为方式,除非你有一个很好的理由!