在SWT按钮中对齐文本和图像?

5

我正在使用Java中的SWT,并尝试对SWT按钮内部包含的图像和文本进行左对齐。看起来这应该是一个简单的button.setAlignment(SWT.LEFT)调用,但它并没有起作用。快速的谷歌搜索让我相信这可能是SWT框架中的一个错误。有人能帮忙吗?


对于那些遇到此问题的开发者,我通过扩展SWT Composite并将其包含一个标签(即图片)和一个按钮(带文本的按钮)来“解决”了这个问题。通常情况下,扩展SWT是不被支持的功能,因此您可能需要重写checkSubclass()方法。再次强调,根据SWT开发者的说法,这是不被支持且潜在不安全的,所以请小心使用。 - ARF
为了让我们所有人都能使用,提供一个示例代码会很好。现在,任何想要此修复程序的人都必须重新发明轮子。此外,我正在使用一年前的4.3最终版(2013年6月5日),但仍未更新。考虑到自此帖子发布以来已经过去了5年,几乎是每月一次,似乎没有人急于更新。 - Sarah Weinberger
这里描述了一种涉及自定义绘图的替代方法:http://stackoverflow.com/questions/12834367/java-swt-button-with-text-over-image(虽然这描述了在图像上方绘制文本,但原理是相同的) - mecsco
1个回答

5

这似乎是SWT的一个限制(至少在Windows操作系统中)。

在3.2版本之前,无法同时设置按钮上的图像和文本。查看这个bug报告,讨论了图像与文本的对齐和相对位置。最终实现只强制居中对齐,并将图像放置在文本左侧。

曾有一项改进请求来解决这个限制,但在3.3版本中被标记为不修复


是的,这也是我剩下的。好吧,我会选择这个。我有一个“解决方法”,我会在我的问题评论中发布。 - ARF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接