正如您在java.awt.Point的Oracle文档中看到的那样,x和y存储为int。但是,getX和getY返回double。虽然有一个setLocation方法接受2个double类型,但没有构造函数这样做。此外,无论如何,double都会在内部被截断为int。这有充分的理由吗?您可以通过使用采用double类型的方法来避免对setLocation进行强制转换,但是当您调用getX和getY。通过从getX和getY返回double,也存在对Point类精度的错误表述。 最佳答案 因为它继承自Graphics2D抽象类中使用的
我有一个从视频流生成java.awt.Image对象的第3方库。(事实上,它最初用于解码.h264文件,然后显示在JFrame中解码的图像)。现在,我想使用该库捕获流的多个图像并将它们保存到硬盘。那么,我必须怎么做才能将这些java.awt.Image保存到文件中呢? 最佳答案 参见ImageIO类型可以是“jpg”、“png”(Java要保存ToolKitImage,您可以执行以下操作。BufferedImagebufferedImage=newBufferedImage(toolkitImage.getWidth(),too
我一直在寻找有关AWT包基础知识的详细信息。特别是它如何与主机操作系统native交互以创建Windows及其内容。任何人都可以向我指出此类文档或提供任何其他信息吗? 最佳答案 OpenJDKsource是要走的路。您只需要点击正确的文件夹。你可以看到这样的内部代码:checkbox=newAwtCheckbox();...checkbox->CreateHWnd(env,labelStr,style,exStyle,x,y,width,height,awtParent->GetHWnd(),reinterpret_cast(sta
我通常使用简单的文本编辑器和.bat文件来编写java代码来编译和运行。我不习惯像Eclipse或Netbeans这样的IDE,因此到目前为止我制作的每个GUI都是手写的。问题:我可以使用eclipse轻松构建GUI(例如拖放功能)吗?此生成的代码能否仅使用基本的java包(swing、awt)而不使用IDE提供的任何其他包?我这样说是因为-如果我错了请纠正我-从我目前所读的内容来看,我知道Eclipse和其他IDE使用它们自己的包(例如为了实现更好的布局)。我想避免这种依赖性,如果可能的话,复制粘贴Eclipse生成的代码,然后以我习惯的简单方式工作。提前致谢。[编辑]试用了几天后,
尝试使用鼠标在awtCanvas上绘制图形(现在是一条线)。我是第一次尝试java图形。所以不知道该怎么做。这是我的第一次尝试:packagedef.grafi;importjava.awt.Canvas;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;im
我们被要求制作一个简单的GUI计算器,我使用getSource()来检测按钮,因为这是他们教我们的。它通过输入第一个和第二个值然后选择操作来工作,它起作用了。但是我犯了一个错误,因为他们希望我们做的是数字也应该是按钮,就像真正的计算器一样。那么如何使用getSource()获取每个按钮的值呢?就像当我按下按钮1和2等于3时。这是我所做的importjava.awt.*;importjava.awt.event.*;publicclassSimpleCalculatorimplementsActionListener{//containersprivateFramef;privatePa
我正在尝试从java.awt.image.BufferedImage中写出一个png文件。一切正常,但生成的png是一个32位文件。有没有办法使png文件成为8位?该图像是灰度图像,但我确实需要透明度,因为这是一张叠加图像。我使用的是java6,我更愿意返回一个OutputStream,这样我就可以让调用类处理将文件写出到磁盘/数据库的问题。这是代码的相关部分:publicstaticByteArrayOutputStreamcreateImage(InputStreamoriginalStream)throwsIOException{ByteArrayOutputStreamoStr
我很惊讶地看到height和width成员的getter有return类型double,尽管他们是int。此外,带有双参数的setSize方法定义如下:/***SetsthesizeofthisDimensionobjectto*thespecifiedwidthandheightindoubleprecision.*Notethatifwidthorheight*arelargerthanInteger.MAX_VALUE,theywill*beresettoInteger.MAX_VALUE.**@paramwidththenewwidthfortheDimensionobject
我想知道如何在我的JFrame上的某个x,y坐标处制作一个点/像素。有人知道一些简单的代码吗? 最佳答案 我创建了一个小示例程序:publicclassTestextendsJFrame{publicTest(){this.setPreferredSize(newDimension(400,400));this.pack();this.setVisible(true);this.setDefaultCloseOperation(EXIT_ON_CLOSE);}@Overridepublicvoidpaint(Graphicsg){s
如何将一个转换为另一个?我想到了一种通过rgb字符串的方法,但这种情况下alpha层被忽略了。所以问题-如何使用alpha将一个转换为另一个? 最佳答案 从awtColor对象获取每个组件并使用javafx.scene.paint.Color.rgb(...)静态方法。请注意,awtColor有一个getAlpha()方法,它以0-255范围内的int形式返回alpha,而javafx.scene.paint.Color.rgb(...)期望alpha值为0.0-1.0范围内的double:java.awt.ColorawtColo