gpt4 book ai didi

java - 将链接添加到 MessageDialog 消息

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:44:07 25 4
gpt4 key购买 nike

我正在做 Eclipse 插件开发。我正在使用 MessageDialog 类。可以找到 API here .

我想添加一个链接,就像我在 MessageDialog 的消息中使用“here”所做的那样。

这是我正在做的:

String errorMessage = "You have received an error. Please visit " + URL_NEEDED_HERE

MessageDialog.openError(getShell(), "Get Existing Data Sources Error", errorMessage);

URL 一直显示为一个字符串。是否可以显示为链接?

最佳答案

正如@greg-449 所说,MessageDialog 不支持链接。如果您不介意这种骇人听闻的方法,您可以节省一些工作并重写 createMessageArea,如下所示:

  @Override
protected Control createMessageArea( Composite composite ) {
Image image = getImage();
if( image != null ) {
imageLabel = new Label( composite, SWT.NULL );
image.setBackground( imageLabel.getBackground() );
imageLabel.setImage( image );
GridDataFactory.fillDefaults().align( SWT.CENTER, SWT.BEGINNING ).applyTo( imageLabel );
}
if( message != null ) {
Link link = new Link( composite, getMessageLabelStyle() );
link.setText( "This is a longer nonsense message to show that the link widget wraps text if specified so. Please visit <a>this link</a>." );
GridDataFactory.fillDefaults()
.align( SWT.FILL, SWT.BEGINNING )
.grab( true, false )
.hint( convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH ), SWT.DEFAULT )
.applyTo( link );
}
return composite;
}
};

代码是从 IconAndMessageDialog 复制而来的,只是用 Link 小部件替换了 Label

或者,您可以像这样覆盖 createCustomArea:

  @Override
protected Control createCustomArea( Composite parent ) {
Link link = new Link( parent, SWT.WRAP );
link.setText( "Please visit <a>this link</a>." );
return link;
}

这是将自定义控件添加到 MessageDialg 的指定方式,但会导致布局略有不同:

MessageDialog with link

关于java - 将链接添加到 MessageDialog 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29374160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com