- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试创建一个包含在 ScrolledComposite 中显示的 StyledText 框的应用程序。我在我的 StyledText 框中显示大量行时遇到困难(超过 2,550 行似乎会导致问题)。
StyledText 框本身不能有滚动条,但必须可以通过 ScrolledComposite 滚动。由于 StyledText 下方和上方还有其他项目需要滚动到并且我不想要多个滚动条。
因此,对于大量数据,我有一个非常大(如高度)的 StyledText 框,它似乎在一定高度后停止。
问题是 StyledText 应该与其内容一样高,但事实并非如此。下面出现间隙的原因是包含复合 Material 正在调整 StyledText 报告的高度,但这实际上不是它的高度。
这是一段简化的示例代码来说明我的问题:
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class ExpandBox2
{
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Example");
shell.setLayout(new FillLayout());
ScrolledComposite scrolledComposite = new ScrolledComposite(shell, SWT.V_SCROLL);
scrolledComposite.setLayout(new FillLayout(SWT.VERTICAL));
Composite mainComp = new Composite(scrolledComposite, SWT.NONE);
mainComp.setLayout(new FillLayout(SWT.VERTICAL));
StyledText styledText = new StyledText(mainComp, SWT.NONE);
styledText.getContent().setText(bigString());
mainComp.setSize(mainComp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
scrolledComposite.setContent(mainComp);
scrolledComposite.setMinSize(mainComp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
scrolledComposite.getVerticalBar().setIncrement(10);
shell.setSize(400, 350);
shell.open();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) {
display.sleep ();
}
}
display.dispose();
}
private static String bigString()
{
String big = "";
for(int i=0;i<10000;i++)
{
big = big + "hello\r\n";
}
return big;
}
}
更新:有趣的是,这个问题出现在 SWT 标签和 SWT 文本上
最佳答案
这实际上是 Windows 的限制。复合 Material 在 Windows 中可能只有特定大小,不超过 32767(像素,我假设)。
这是为 scrolledComposite 找到的,因为它实际上不是 > 32767,它只是看起来是。而对于 mainComp,实际大小 > 32767,这就是我们被切断的地方。
最初我认为这是一个 Eclipse 错误并提交了一份报告,我被告知这是一个 Windows 问题/功能:https://bugs.eclipse.org/bugs/show_bug.cgi?id=333111
关于java - SWT StyledText 有高度限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510579/
我想知道StyledText实际显示了多少行。这可能吗? 谢谢。 最佳答案 试试这个代码: // The index of the last (possibly only partially) vis
我是 Java 新手,想知道如何设置要添加到 SWT StyledText 框的下一个文本的字体和字体颜色。 例如,我有一个定义“命令”和“数据”文本的应用程序,每个文本都以不同的字体/颜色显示。假设
我正在使用 SWT 编写一个桌面应用程序,它以高速(每秒近 100 个数据包)从网络接收日志数据。每个数据包都包含一行,必须将其附加到 StyledText 中。由于我在非 UI 线程中接收数据包,因
在我的 Eclipse 插件中,我有一个 StyledText 对象和 IEditorReference 对象。我还有一个 y 坐标,我想用它来检查哪个行号低于该坐标: int lin
我正在尝试读取文件并将其显示在样式化的小部件中。但是当我在控制台中显示输出时,它带有缩进和换行符,但是当我尝试在小部件中显示它时,输出会连续出现。 预期输出: void add(int x,int
我必须创建两个串联滚动的 StyledText ,我得到的只是使用 ScrolledComposites 创建相同的代码。我使用 StyledText 的限制只是因为我也将它用于其他目的。我想创建同样
我正在使用 StyledText 组件,其行为有点类似于流行的 Eclipse IDE 控制台 View (附加日志),但在这里,在我的 StyledText 组件中滚动锁定已启用。我的意思是,对于附
StyledText.setLineSpacing() 允许行间距,其中每行(无论是换行还是在回车之后)与其前一行分隔开。 有没有办法设置段落间距,其中换行通常坐在一起,但回车符会插入额外的空格? (
我正在使用 Java 中的 SWT 开发一个应用程序,并且遇到了多个 StyledText 小部件的一些奇怪行为。这是相当一致的:如果窗口/ View /编辑器中同时显示多个 StyledText 小
我正在尝试创建一个包含在 ScrolledComposite 中显示的 StyledText 框的应用程序。我在我的 StyledText 框中显示大量行时遇到困难(超过 2,550 行似乎会导致问题
我正在使用 SWT StyledText 来填充对我的插件中的查询的响应。我学会了如何自动滚动到底部,但无法找出自动选择最后一个条目的正确方法。我已经设法以一种未优化的方式做到这一点,即将所有先前行的
我正在开发 SWT StyledText 小部件。我通过提供文本尝试了 setStyleRanges() 方法和 LineStyleListener 方法。 现在我想知道是否有可能使用 StyledT
我正在使用 SWT 的 StyledText,我想知道如何检测用户将鼠标悬停在某个单词上超过 3 秒。我的意思的一个例子是,当您将鼠标悬停在文本上时,Eclipse 会显示一个弹出窗口。 最佳答案 您
我在 eclipse 插件中使用了一个 TreeViewer,该插件使用一个内容提供程序和一个实现所有 (ITableLabelProvider, IFontProvider , IColorProv
StyledText 小部件显示一段 Java 代码,它使用 JavaLineStyler 进行语法突出显示。但是,我想显示使用 选择的一些 token codeViewer.setStyleRang
我确实有一个简单的问题:SWT 文档说,如果您使用 styledText,您要么实现它的 API,要么实现 LineStyleListener。 那么,如果我确实使用 LineStyleListene
我想将 Styledtext (使用 StyleRanges )的内容打印/转换为图像。不知道怎么处理.. 任何人请指导我做到这一点.. 最佳答案 给你: public static void mai
我想知道是否有一种直接的方法可以使用 StyledText 文本字段显示行号 - 即使行被换行。我在我的应用程序中使用它,如果内容变大,一些行号会很好。 谢谢。 最佳答案 关键是org.eclipse
如何让 SWT StyledText 小部件始终保持滚动到末尾,即使新的文本行附加到它? 我试图寻找一些可以让我设置滚动位置的函数,但我找不到任何函数。也没有允许我执行此操作的属性。 最佳答案 添加文
如果我缺少实例,如何从 SWT StyledText 中删除所有监听器?我尝试使用 StyledText.getListeners(int) 方法来获取所有实例,然后能够删除它们。但是找到所有需要的
我是一名优秀的程序员,十分优秀!