草庐IT

java - 将文本与 Java Graphics 2d 对齐

谁能告诉我如何在Java2d中正确放置文本?这是代码,它绘制了一列自然左对齐的文本。FontyFont=newFont("Arial",Font.BOLD,13);interval=0;g2d.setFont(yFont);for(Stringl:binLabels){g2d.drawString(l,0,(135+interval));interval=interval+15;}快把我逼疯了。谢谢大家懒惰型 最佳答案 在您的paintComponent()方法中,您可以使用FontMetrics来获取要绘制的字符串的宽度:Font

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

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

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 - 如何在 Graphics 方法 drawImage() 中使用 ImageObserver

我尝试使用的方法是:drawImage(image,int,int,int,int,ImageObserver)方法这样我就可以缩放我的图像,在我看到的所有示例中,ImageObserver应该是这样的,但这似乎不起作用(即我看到的唯一方法是:drawImage(image,int,int,ImageObserver),不知道这是否有所作为)。这是我的主要类,即小程序:importjava.applet.*;importjava.awt.*;publicclassMainextendsAppletimplementsRunnable{privateThreadth;privateHit

java - 使用 Graphics2D 使用亚像素级精度绘制图像

我目前正在尝试像在视频游戏中一样以固定速率在屏幕上绘制图像。不幸的是,由于图像移动的速度,一些帧是相同的,因为图像还没有移动一个完整的像素。有没有办法向Graphics2D提供float值而不是int值来绘制图像?最初这是我所做的:BufferedImagesrcImage=sprite.getImage();PositionimagePosition=...;//Definedelsewhereg.drawImage(srcImage,(int)imagePosition.getX(),(int)imagePosition.getY());这当然是阈值,所以图片不会在像素之间移动,而

java - Graphics2D 转换结果与手动转换不匹配

我正在使用Java的Graphics2D在使用AffineTransform的组件上绘制来操纵我的绘图。Graphics2D为此提供了一种方法转换,它采用AffineTransform。有时我需要在不使用内置转换的情况下手动操作一个点。但是,当我尝试使用我给Graphics2D.transform的相同变换来变换一个点时,有时结果点是不一样的。下面的代码重现了这个问题(它是Scala代码,但我想你可以想象Java代码。):vartransformationMatrix=newAffineTransform()/**transformationMatrixismodifiedthroug

java - 如何在 Java2D/Graphics2D 中指定后备字体

我正在使用g.drawString(str,x,y)绘制带有Graphics2D对象g的字符串。g的当前字体没有覆盖str的所有字符(我在那里有中文字符)。在MacOSX上,后备字体似乎会自动使用,但在Windows上不会,出现黑色方形轮廓而不是所需字符。为什么行为因平台而异?如果缺少字符,如何指定后备字体(或几种后备字体)?(例如,一种漂亮的字体there。)更新/更多信息因此,不支持所有字符的原始字体不是JVM的logicalfonts之一。,但它是我的应用程序附带的捆绑字体,是通过Font.createFont()获得的。因此,将字体添加到JRE的lib/fonts/fallba

java - 在 Java 中重置 Graphics2D 对象

我在Java中试验Graphics2D。但像往常一样,我被困住了。:P问题是:假设我有这段代码,Graphics2Dg=(Graphics2D)(this.getGraphics());//InsideaJFrameg.rotate(Math.PI/8);g.drawLine(10,20,65,80);//Iwantthisoneandallfollowinglinestobedrawnwithoutanyrotationg.drawLine(120,220,625,180);这可能吗???我知道一定有某种方法,但我无法弄清楚。请帮忙。 最佳答案

java - 如何创建 Graphics2D 实例?

在JavaSE7中获取实例以绘制几个调试点的最简单方法是什么?桌面环境。 最佳答案 您可以使用BufferedImage:BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);Graphics2Dgraphics2D=image.createGraphics(); 关于java-如何创建Graphics2D实例?,我们在StackOverflow上找到一个类似的问题:

java - 为什么在 Graphics 对象上调用 dispose() 会导致 JPanel 不呈现任何组件

在得知dispose()应该在Graphics/Graphics2D对象上调用后,我着手改变我的游戏以合并它.当我在JPanel的覆盖paintComponent(Graphicsg)中添加g2d.dispose()时,我添加的组件(扩展JLabel类)在没有呈现的地方我仍然可以点击它们等但它们不会被绘制。我用普通的JLabel和JButton进行了测试,效果相同(虽然JButton在鼠标悬停时呈现)。所以我的问题是为什么会发生这种情况?这是一个SSCCE来演示:在MainMenuPanel类的paintComponent中取消对dispose()的调用后:importjava.awt