使用Java,是否有任何内置的方法来呈现文本以使其仅限于graphics2D对象上的矩形?我知道我可以使用Graphics2D.drawString但它只能绘制一行文本。我也知道我可以用FontMetricsfm=graphics.getFontMetrics(font);Rectangle2Drect=fm.getStringBounds("SomeText",graphics);在某些Graphics2D图形对象上使用某些Font字体呈现时获取有关字符串边界的信息。所以我可以开始循环,断开我的字符串等等,以强制它适合某个矩形。但我宁愿不必写那些...是否有任何现成的函数可以为我执行
简而言之,我的需求是在我的java应用程序中有一个背景图像,并且在某些情况下,在该图像之上创建一些其他图形。我想我会使用JPanel来绘制背景图像,在程序开始时将其添加到我的JFrame,然后在发生某些事件时在其之上添加其他JPanel。问题是Swing为首先添加的JPanel提供了最高的Z索引,所以我的背景应该显示在所有内容之上。有什么方法可以控制JPanel的Z索引/顺序,还是我这样做完全错了? 最佳答案 您可以使用setComponentZOrder()来处理应用程序中的Z顺序。资源:JavaDoc-Container.set
尝试使用鼠标在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
我一直在一个大程序中工作,它的功能之一应该是打印主窗口的内容。我检查了API并找到了这个例子:http://docs.oracle.com/javase/tutorial/2d/printing/gui.html这非常有帮助,我试图通过将它放在我的打印按钮的actionperformed方法中来在我的程序中使用该代码:PrinterJobjob=PrinterJob.getPrinterJob();job.setPrintable(this);booleanok=job.printDialog();if(ok){try{job.print();}catch(PrinterExcepti
是否有一个好的库可以用Java创建和更新图表,例如饼图、条形图等,或者我可以开始使用Java2D自己绘制它们吗? 最佳答案 JFreeChart是个不错的选择。我强烈推荐它。 关于用于创建图表的Java库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5737738/
如何在Java中更改BufferedImage的全局alpha值?(即使图像中alpha值为100的每个像素的alpha值为80) 最佳答案 @尼尔科菲:谢谢,我也一直在找这个;但是,您的代码对我来说效果不是很好(白色背景变成黑色)。我编写了类似这样的代码,它完美地工作:publicvoidsetAlpha(bytealpha){alpha%=0xff;for(intcx=0;cx其中obj_img是BufferedImage.TYPE_INT_ARGB。我用setAlpha((byte)125)改变alpha;alpha范围现在是
如何解决Java中自定义字体的问题?例如,我的应用使用的字体并非在所有计算机上都可用。如果它在客户端计算机上不存在,我能否以某种方式将它包含在已编译的可执行文件中,然后从那里调用它?还有哪些其他选择?我可以将所有字体字符制作为图像(之前,在某些图形应用程序中),然后为每个字符显示图像...可以吗? 最佳答案 这是我用来从.ttf文件(可以捆绑)加载字体文件的实用方法:privatestaticfinalFontSERIF_FONT=newFont("serif",Font.PLAIN,24);privatestaticFontget
想要重新绘制JSlider的标记或缩略图,而不是标准的灰色。我怎样才能做到这一点? 最佳答案 扩展BasicSliderUIdelegate并非没有危险,但它确实允许对渲染进行任意控制,如下例所示。slider.setUI(newMySliderUI(slider));...privatestaticclassMySliderUIextendsBasicSliderUI{privatestaticfloat[]fracs={0.0f,0.2f,0.4f,0.6f,0.8f,1.0f};privateLinearGradientPai
我想用ApachePDFBox在PDF上绘制vector图。这是我用来绘制常规图像的代码PDPagepage=(PDPage)document.getDocumentCatalog().getAllPages().get(1);PDPageContentStreamcontentStream=newPDPageContentStream(document,page,true,true);BufferedImage_prevImage=ImageIO.read(newFileInputStream("path/to/image.png"));PDPixelMapprevImage=new
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我刚刚学习java,必须使用javaswing库和Graphics2D类做一些事情。基本上我必须画一个建筑起重机,它有多个部分:一个body(起重机的body)和一些附加的ARM(基本上它看起来像这样:http://i.imgur.com/4YIkYqW.jpg)。我的问题是我是否正确使用了Javaswing类?在我下面的代码中,我省略了不必要的代码,因为我只是想确保我的结构是正确的(正确使用J