我正在使用java和javax.swing开发一个简单的计算器程序基本上,当您按下按钮时,程序应该获取该按钮的功能(数字或操作)并将其显示在文本区域中。计算器本身的整个逻辑并不重要。此外,还有一个clear菜单项可以清除textArea中的所有文本。但是,每次按下按钮时,我都会收到以下错误:Exceptioninthread"AWT-EventQueue-0"java.lang.NullPointerExceptionatcalculator.CalculatorGUI.actionPerformed(CalculatorGUI.java:106)`当我按下清除菜单项时,我也遇到了类似
我正在尝试让我的程序读取以类似问卷的形式输入的答案。为此,我计划使用getComponents()获取所需的答案字段(例如,文本字段,单选按钮等),然后使用诸如getText()之类的方法读取答案。我从未使用过getComponents(),而只是在学习Java/Swing/AWT。getComponents()文档中的上述警告使我感到恐惧,因为我不知道什么是“树锁”,或者在哪里可以找到它。谷歌一无所获。即使事实证明getComponents()对于我的问题来说是不合适的解决方案,为了学习,我仍然希望我的问题得到解答。谢谢!:) 最佳答案
我找到了一个javacode并想在我的项目中使用它。它包含我的JDK没有的这些导入:importcom.sun.awt.AWTUtilities;importcom.sun.jna.Native;importcom.sun.jna.platform.WindowUtils;我引用了sun站点并找到了这个下载页面:http://www.oracle.com/technetwork/java/javase/downloads/index.htmlJDK和JRE是否需要从SUN官网全部下载替换?我的JDK是版本6并且是最新的。谢谢大家 最佳答案
我有以下代码在我的Java应用程序中显示native打印对话框。PrinterJobjob=PrinterJob.getPrinterJob();PrintRequestAttributeSetatts=newHashPrintRequestAttributeSet();atts.add(DialogTypeSelection.NATIVE);if(job.printDialog(atts)){PrintServicenewlyUsedService=job.getPrintService();DocPrintJobdocJob=newlyUsedService.createPrint
我正在将一个非常古老的AWT游戏移植到一个非常糟糕的新设备上。这款游戏有一大堆问题,包括对线程安全的一种非常松懈的方法:游戏引擎试图使用从UI线程获得的图形上下文在其引擎线程中直接绘制到屏幕上。这在设备上不起作用。我设法让它开始工作,方法是让引擎线程绘制到屏幕外缓冲区,然后让UI线程定期调用显示组件上的repaint(),然后显示组件将缓冲区blit到屏幕上,但性能很糟糕——考虑到所有上下文切换和双缓冲,这不足为奇。我实际上并不是一个知识渊博的AWT程序员;到目前为止我一直避免它,这已经够可恨了。但是这个问题——有一个引擎线程想要在屏幕上绘制——一定是一个常见的问题。有谁知道任何体面的
背景:我需要能够创建“残疾”外观的图像。通常建议的方法是将图像转换为灰度并显示灰度图像。缺点是它仅适用于图像,因此在无法立即访问处于禁用状态的图像的情况下显示图形会很麻烦。现在我认为这可以通过java.awt.Composite即时完成(然后我就不需要知道例如如何实现Icon以使其禁用)。只是似乎没有转换为灰度的实现,所以我不得不创建自己的...就是说,我拼凑了一个实现(它呈现了我期望的效果)。但我不确定它是否真的适用于所有情况(Composite/CompositeContext的Javadocs对于如此复杂的操作来说似乎非常薄)。正如您从我的实现中看到的那样,我采用了一种迂回的方式
public变量的类在封装中被认为是弱的,这不是一个糟糕的设计实践吗?如果是这样,为什么java.awt.Dimension有2个公共(public)变量width和height? 最佳答案 我认为公开公共(public)字段并不违反封装本身。封装是实体的属性,实体内部隐藏着复杂的内部结构。这个复杂的结构不能直接访问,因此没有被破坏的风险。它只能通过公共(public)方法访问,这使得它们可以很好地工作并且不会破坏复杂的内部结构。例如,我们无法直接访问HashMap的哈希表,也无法破坏它。我们只使用get和put方法来正确处理哈希表
我已经从oracle过程中读取了clob,并通过以下代码将它们转换为java.awt.Image对象。InputStreamstream=clob.getAsciiStream();ByteArrayOutputStreamoutput=newByteArrayOutputStream();inta1=stream.read();while(a1>=0){output.write((char)a1);a1=stream.read();}ImagemyImage=Toolkit.getDefaultToolkit().createImage(output.toByteArray());o
awt是否可以实现双缓冲(在java中)?目前,我知道swing不应该与awt一起使用,所以我不能使用BufferStrategy和诸如此类的东西(我已经有一些用awt编写的代码,我不想在swing中重写)。如果awt可以实现双缓冲,我是否必须手动编写缓冲区?与swing不同,awt似乎没有相同的内置双缓冲功能。如果我必须手写代码,是否有好的教程可供引用?还是对于新手程序员来说,改用swing更容易/更明智?很抱歉这个多步骤问题。感谢您的宝贵时间:) 最佳答案 这很容易在网络上得到解答。只需搜索“doublebufferawt”,您
那么,假设我有一些游戏,例如Pong。显然,一般来说,您不想将游戏逻辑混合到图形类中,因此Ball或Paddle类与实际绘制它们的JPanel是分开的。Ball具有球的移动逻辑、当前位置、命中检测等。但是,在我的Ball类中使用Swing和awt中的图形类对我来说是不好的做法吗?例如,如果我要使用java.awt.Rectangle来确定碰撞框。尽管我没有在这个类上画它,但我正在使用它。或者如果我要使用Java.awt.Point来存储坐标。顺便说一句,我问的原因是因为我在这个网站上被多次告知不要将图形与其他部分混在一起。在非图形类中使用Rectangle:(这是不好的做法吗?)pub