在实现您自己的呈现时使用AWTFrame和SwingJFrame与不使用标准JavaGUI组件之间的主要区别是什么?这是上一个问题的后续:AWTcustomrendering-capturesmoothresizesandeliminateresizeflicker关于Swing与AWT的典型谈话要点似乎并不适用,因为我们只使用框架。例如,重量级vs轻量级已经过时了(JFrame扩展了Frame)。那么对于这种情况,JFrame还是Frame哪个最好?它有什么有意义的不同吗?注意:在这种情况下,不希望在EDT中呈现。有一个未链接到EDT的应用程序工作流,渲染是在EDT之外按需完成的。将
我创建了一个对话框,用户可以在其中浏览图像,然后查看在Canvas上绘制的图像的预览。图像被缩放,以便在适合盒子时保持其纵横比。我使用了在thisanswer中找到的调整大小的方法,这涉及将图像从SWT转换为AWT,执行调整大小,从AWT转换回SWT,最后将其绘制在Canvas上。由于此过程在时间和处理能力方面的成本非常高,我选择如果图像大小正确则跳过调整大小的步骤,因此不需要以任何方式进行转换。处理具有alpha透明度的图像时会出现此问题。在某些情况下,首先转换的具有透明度的图像会以黑色背景绘制在Canvas上。同一图像的副本已调整为Canvas的精确大小,因此未转换,具有白色背景。
我正在尝试编写一个SWT组件,它能够获取并绘制java.awt.BufferedImage的实例.我的问题是SWT的Image和AWT的BufferedImage不兼容:SWT组件无法绘制java.awt.Image,AWT/Swing组件无法绘制org.eclipse.swt.graphics.Image.有几种尝试以其他方式解决这个问题的方法(也可能有一些变化,但基本上有这两种):ConvertbetweenSWTImageandAWTBufferedImageSwing/SWTIntegration他们都有缺点,没有达到我的预期:第一种方法,转换SWTImage到Buffered
几个月来我一直在研究这个,这是迄今为止我想到的最好的。结构(在EDT之外呈现)无可争议,因为我们的应用程序以这种方式运行并且不会被重写。该应用程序具有集成的布局模型和脚本模型并驱动渲染,因此渲染必须在AWT绘制模型之外执行。我试图达到的是执行自定义渲染的最佳且可靠的方式。以下SSCCE对我们来说效果很好。但是,在调整帧大小时,它有两个缺点:偶尔会出现闪烁,尤其是在快速调整大小时从paint()调用调用调整大小(通过此处的checkSize)的“平滑调整大小”技巧仅适用于扩展。缩小帧时,它通常在释放鼠标按钮之前不会呈现此外,但在这里不是很明显,它确实会偶尔抛出IllegalStateEx
如果您正在修改GUI并且处于AWT事件调度线程中,例如ActionListener,您是否应该使用SwingUtilities.invokeLater(Runnable)? 最佳答案 您必须始终在事件调度线程(EDT)中进行GUI更新。然而,正如Jeffrey在评论中指出的那样,Swing对象上的ActionListener.actionPerformed方法已经从EDT调用。如果您只是想让JButton看起来启用/未启用或从JList添加/删除项目,并且您通过ActionListener在Swing组件上,那么您不必显式调用Swi
我为虚拟键盘实现了一个示例类并运行了这个VirtualKeyboardTest。出现了键盘,但主要问题是单击x按钮时它没有正确关闭。我该如何纠正这个问题?importjava.awt.*;importjava.awt.event.*;publicclassVirtualKeyboardTest{publicstaticvoidmain(Stringargs[]){VirtualKeyboardvk=newVirtualKeyboard();vk.setSize(500,300);vk.setVisible(true);Framef1=newFrame();f1.addWindowLis
创建新按钮我必须在新线程中运行代码。通常我们使用newThread(....).start();但我想知道为什么我们不能使用@Async-Annotation。这是代码:packagenet.vectorpublish.desktop.vp;importjava.awt.event.ActionEvent;importjava.awt.image.BufferedImage;importjava.net.MalformedURLException;importjava.net.URL;importjava.util.Set;importjava.util.concurrent.Exec
我正在寻找能让这个字母表汤更清晰的东西。如果它能够阐明差异的政治并试图阐明相似之处(如果有的话),那就太好了。 最佳答案 相似点:rendering->graphiclibrary->plaformAWT->SWING->NETBEANSPLATFORM->jsr296SWT->JFACE->eclipsercp渲染工具包提供基本功能Canvas绘图、标签、文本、组合框...图形库介绍MVC模式、更高级别的组件(可排序表、日期选择器...)平台帮助拥有由模块组成的模块化应用程序,扩展其他模块的功能。它还添加企业功能,如后台任务、部署
我是Java编程的新手,因此如果这听起来像一个愚蠢的问题,我提前道歉。我正在尝试构建一个用纯C编写的简单应用程序,它必须创建一个JavaVM,然后通过加载基于AWT/Swing的java代码来创建一个新窗口>.正在关注this技术说明我了解到,仅在MacOSX中,必须从与主线程不同的线程调用JavaVM,以便能够创建基于AWT的GUI。因此,在我的C应用程序的main函数中,我创建了一个执行所有操作的新线程,从创建javaVM到创建GUI。由于应用程序实际上并不那么简单,我将发布一个简化版本。主要功能:intmain(intargc,char**argv){//Run-timeload
我正在处理一些使用AWT和Swing功能将动画输出写入桌面的代码。它使用2D图形绘制并以字体呈现文本。此代码可以使用JavaMediaFramework将动画保存到电影文件中。我想将此代码移植到纯服务器端环境,以便使用WebUI。绘图代码可以在servlet容器内运行,也可以作为命令行程序在外部运行。(或者我可以选择不使用servlet容器,而是使用更新的方式从命令行运行JavaWeb服务器。)我可以在不启动服务器上的X窗口系统的情况下使用AWT和Swing绘图功能吗? 最佳答案 文章UsingHeadlessModeintheJa