jjzjj

Graphics

全部标签

java - 用 Java Graphics.drawString 替换的充分理由?

有谁知道现有的代码可以让您在Java2D中绘制完全对齐的文本?例如,如果我说,drawString("sampletexthere",x,y,width),是否有一个现有的库可以计算出有多少文本适合宽度,做一些字符间距以使文本看起来不错,并自动进行基本的自动换行? 最佳答案 虽然这不是最优雅也不是最可靠的解决方案,但这里有一个方法将采用Font当前的Graphics对象并获取其FontMetrics为了找出绘制文本的位置,并在必要时移动到新行:publicvoiddrawString(Graphicsg,Strings,intx,i

Java2D 图形抗锯齿

我是Java的新手,正在尝试使用Java2DGraphics创建图像。但是输出是抗锯齿的。我尝试了很多方法来纠正它,但没有用。字符变得扭曲或参差不齐。publicBufferedImagecreateNameOnButton(Stringlabel){intmessageWidth=0;Fontfont=newFont("Arial",Font.PLAIN,11);BufferedImagebi=newBufferedImage(10,10,BufferedImage.TYPE_INT_RGB);Graphics2Dg2d=(Graphics2D)bi.getGraphics();g2

java围绕中心旋转矩形

我想围绕它的中心点旋转一个矩形,它应该保持在应该绘制的位置并在该空间旋转这是我的代码:AffineTransformtransform=newAffineTransform();transform.rotate(Math.toRadians(45),rectangle.width/2,rectangle.height/2);Shapetransformed=transform.createTransformedShape(rectangle);g2.fill(transformed)矩形已旋转但绘制在屏幕的不同部分,我该如何更正此问题? 最佳答案

java - 如何绘制大型 BufferedImage 的一部分?

我有一个10000x10000的BufferedImage,我希望只将它的一部分绘制到Canvas上,有没有办法使用args来做到这一点,例如:x,y,width,height?例如,drawImage(img,x,y,width,height)会从图像中绘制一个矩形,起点为(x,y),尺寸为(width,height)?编辑:我要重新表述这个问题:我有一个10000x10000的图像,我只想在屏幕上显示它的一部分,仅通过x和y偏移它的问题是,这仍然会导致延迟,因为整个图像正在渲染,只是其中的大部分关闭Canvas。我怎样才能基本上做到这一点,以便呈现整个图像,但我可以在不导致Canv

java - 绘制一个不会在下次绘制中消失的矩形

我试图创建一个绘制矩形的JPanel。面板需要绘制很多矩形,但它们不会移动。我的问题的一个解决方案是创建一个列表,其中包含我已经创建的所有矩形,并在每次调用“Paint”时将它们全部绘制出来。但是有很多矩形,它会减慢计算机的速度。我还尝试使用repaint(x,y,height,width)来重绘新矩形的空间,但它没有用。(JPanel不断删除以前的矩形。)在某种程度上,我需要绘制不会消失所有油漆的矩形。或者一种不会删除以前绘制或不会绘制背景的绘制方法。这是我的JPanel类的一部分:classMyPanelextendsJPanel{privateintx,y,size;privat

java - 没有在 main 方法中调用 paint() 如何运行?

这是一个使用awt包的java图形的初学者问题。我在网上找到这段代码来绘制一些简单的图形。importjava.awt.*;publicclassSimpleGraphicsextendsCanvas{/***@paramargs*/publicstaticvoidmain(String[]args){SimpleGraphicsc=newSimpleGraphics();c.setBackground(Color.white);c.setSize(250,250);Framef=newFrame();f.add(c);f.setLayout(newFlowLayout());f.se

java - 如何用Java2D绘制内线

我只想绘制大小正好为15x15像素并具有填充和轮廓的圆。我正在使用Java2D。问题是,由于随后调用了Graphics2D.fill(circle)和Graphics2D.draw(circle)绘制了16x16像素的圆。这是因为内部的Java2D轮廓机制,它为给定的15x15尺寸提供16x16的圆形轮廓。此外,如果我要求Java2D绘制14x14像素的圆形轮廓-它恰好绘制14x14像素。我曾尝试使用渲染器的抗锯齿和描边提示,但运气不佳。这里是:RenderingHints.VALUE_STROKE_NORMALIZE和Ellipse2D.Double(0,0,15,15)大纲Rend

java - AWT 快速图形和线程安全

我正在将一个非常古老的AWT游戏移植到一个非常糟糕的新设备上。这款游戏有一大堆问题,包括对线程安全的一种非常松懈的方法:游戏引擎试图使用从UI线程获得的图形上下文在其引擎线程中直接绘制到屏幕上。这在设备上不起作用。我设法让它开始工作,方法是让引擎线程绘制到屏幕外缓冲区,然后让UI线程定期调用显示组件上的repaint(),然后显示组件将缓冲区blit到屏幕上,但性能很糟糕——考虑到所有上下文切换和双缓冲,这不足为奇。我实际上并不是一个知识渊博的AWT程序员;到目前为止我一直避免它,这已经够可恨了。但是这个问题——有一个引擎线程想要在屏幕上绘制——一定是一个常见的问题。有谁知道任何体面的

java - 如何提高 Graphics2D 文本质量?

我有一个关于在条形码上打印附加信息的问题。我正在使用http://barbecue.sourceforge.net/创建我的条形码。创建条形码后,我想添加一些附加信息。目前我用以下方式做到这一点!例如:Graphics2Dg2d5=container4Barcode.createGraphics();g2d5.setBackground(Color.WHITE);g2d5.clearRect(0,33,200,200);g2d5.setColor(Color.BLACK);g2d5.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASIN

java - Java 中的三次 B 样条曲线

我需要使用三次B样条曲线,但无法在任何地方找到它的代码。JavaAPI中唯一可用的曲线是QuadCurve2D、Path2D和CubicCurve2D。我认为它们都是贝塞尔曲线,但我不确定。如果您知道我在哪里可以找到三次B样条的代码,最好扩展JavaShape类并支持contains(Pointp)用于onMouseOver请帮忙。 最佳答案 CubicCurve2D是三次B样条。但是,这可能是也可能不是您需要的,因为还有其他三次B样条。也就是说,所有CubicCurve2D都是三次B样条曲线。并非所有三次B样条都是CubicCur