如何将SWT复选框按钮的显示文本设置为粗体
SWT复选框按钮文本设置粗体实现方案
不需要修改messages.properties中的文本配置,直接通过修改控件绑定的字体即可实现粗体效果,注意不要硬编码字体参数,要基于控件原有字体调整,避免和系统UI风格冲突。
具体实现代码
在你原有创建按钮的代码后追加以下逻辑即可:
// 获取按钮当前默认字体 Font defaultFont = button.getFont(); FontData[] fontDatas = defaultFont.getFontData(); // 为字体追加粗体样式 for (FontData fd : fontDatas) { fd.setStyle(fd.getStyle() | SWT.BOLD); } // 生成粗体字体并应用到按钮 Font boldFont = new Font(button.getDisplay(), fontDatas); button.setFont(boldFont); // 绑定销毁事件释放自定义字体资源,避免内存泄漏 button.addDisposeListener(e -> boldFont.dispose());
注意事项
- 不要直接修改从
button.getFont()拿到的默认字体对象,这个字体是SWT全局共享的系统资源,直接修改会导致同进程内所有使用该默认字体的控件都被改成粗体 - 自定义创建的
boldFont必须手动释放,上面的写法把释放逻辑绑定到按钮的销毁事件上,不需要额外管理生命周期,是最稳妥的实现方式 - 如果后续需要切换回普通字重,重新给按钮设置回默认字体即可,不需要调整文本内容
内容的提问来源于stack exchange,提问作者A.Goel
相关产品推荐
相关产品推荐

