如何在RCP开发中能够d出像Eclipse那样子的自动对话框吗?

如何在RCP开发中能够d出像Eclipse那样子的自动对话框吗?,第1张

将下面这段代码加入到你的事件处理函数中即可:

new PopupDialog(button.getShell(), PopupDialog.HOVER_SHELLSTYLE,

true, false, false, false, false, null, null) {

private static final int CURSOR_SIZE = 15

protected Point getInitialLocation(Point initialSize) { //d出窗口的初始位置,此处为鼠标的位置

//show popup relative to cursor

Display display = getShell().getDisplay()

Point location = display.getCursorLocation()

location.x += CURSOR_SIZE

location.y += CURSOR_SIZE

return location

}

protected Control createDialogArea(Composite parent) { //创建d出窗口里的内容

Label label = new Label(parent, SWT.WRAP)

label.setText("Only for test")

label.addFocusListener(new FocusAdapter() {

public void focusLost(FocusEvent event) {

close()

}

})

// Use the compact margins employed by PopupDialog.

GridData gd = new GridData(GridData.BEGINNING

| GridData.FILL_BOTH)

gd.horizontalIndent = PopupDialog.POPUP_HORIZONTALSPACING

gd.verticalIndent = PopupDialog.POPUP_VERTICALSPACING

label.setLayoutData(gd)

return label

}

}.open()//打开对话框

你可以自己设置d出窗口的内容布局,修改里面的函数就可以了。

使用eclipse rcp开发自己的应用程序时,经常需要使用到格式文本的编辑与展示。但在SWT/JFACE组件中并未提供合适的组件来完成此任务,Text与我们的要求相差甚远。我的OA系统中公文的正文部分需要一个合适的rich editor来完成此任务。

于是蛮世界的寻找适合的java rich editor组件来完成这个需求,最后寻得两个比较容易在eclipse rcp中采用的技术方案,这两个方案我都在我的系统中应用过

1、使用ekit组件,ekit是不多的开源java rich editor组件,而且从功能上来说可以较好满足文本格式的要求。因为它是awt组件,所以在eclipse rcp中使用它时要用SWT_AWT桥接器来完成SWT Compsite到awt frame的转换。我用的方法是把ekit用SWT_AWT包装了一下,做成了一个SWT组件易于我的程序调用。这种方式的缺点就是ekit本身不支持ole的拷贝,来源于其它ole程序粘贴的内容复制要自己写对应的粘贴处理程序,挺烦的

2、使用fckeditor或tinyMCE之类的基于javascript的web rich editor组件,然后使用SWT中的HtmlComposer组件调用。这种方式的好处是支持各种程序的ole粘贴,省心省力。

1、到官网下载对应版本的log4j的jar包

2、为java项目导入log4j.jar包:

在Eclipse中新建一个java项目,右键单击该项目选择“属性(properties)”打开当前项目的属性窗口,选择Java构建路径(Java Build Path)>>库(Libaries)>>添加外部JAR(Add External JARs),将刚才下载的log4j.jar包添加到项目中去。

3、在项目中新建一个log4j.properties的配置文件

该文件专门用于配置日志信息,其内容决定日志信息的输出位置及格式。右键单击项目选择 新建 >>文件 ,文件名命名为 xxx.properties

4、将配置信息写入到刚才建立的文件log4j.properties中去:

###将日志信息输出到控制台###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%m%n  %l%n

###将日志信息输出到文件中###

log4j.appender.file=org.apache.log4j.FileAppender

log4j.appender.file.File=sysInfo.log

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%m%n  %l%n

###设置日志的优先级别###

log4j.rootLogger=debug,stdout,file

5、新建一个java文件,测试配置是否成功:

import org.apache.log4j.Logger

public class Log4jDemo {

 

         public static void main(String[] args) {

                   Logger log = null

                  

                   try{

                            // 初始化日志生成器,加载日志配置文件

//PropertyConfigurator.configure("bin/log4j.properties")

                            log = Logger.getLogger(Log4jDemo.class.getName())

                           

                            log.debug("main")

                            int i = 1/0

                   } catch(Exception e){

                            // 记录日志

                            log.info(e.getMessage())

                            //e.printStackTrace()

                   }

         }

}

查看生成的日志文件,发现日志写入成功。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7890568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存