标签: graphics2d

好奇为什么我的图像没有出现

只使用绘画方法,我的图像最初不会显示.一旦我最小化了Java窗口并调整其大小,图像就会显示出来.有什么代码我不见了吗?

public class Lil extends JFrame {

Image image = Toolkit.getDefaultToolkit().getImage("images/Untitled.png");

public Lil(){

    setTitle("flame");
    setBackground(Color.WHITE);
    setSize(400, 400);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setVisible(true);
}

public void paint(Graphics g){

    g.clearRect(0, 0, 400, 400);        
    g.drawImage(image, 60, 25, null);
    //repaint();
}   

public static void main(String [] args){    
        new lil();  
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing paint graphics2d imageicon

4
推荐指数
1
解决办法
1664
查看次数

如何使用iText将图形绘制为PDF?

我试图完成一个绘制图形并将其写入PDF的示例,但我不断收到PDF没有页面的错误.如果我在打开后用document.add()添加一些简单的东西就可以正常工作,我只是看不到图形.这是我的代码:

Document document = new Document();
PdfWriter writer = new PdfWriter();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition",
    " attachment; filename=\"Design.pdf\"");

writer = PdfWriter.getInstance(document, response.getOutputStream());

document.open();    
PdfContentByte cb = writer.getDirectContent();
Graphics2D graphics2D = cb.createGraphics(36, 54);
graphics2D.drawString("Hello World", 36, 54);
graphics2D.dispose();   
document.close();
Run Code Online (Sandbox Code Playgroud)

我是否必须执行其他操作才能将图形添加到文档中,或者我的语法不正确?

java pdf-generation spring-mvc itext graphics2d

4
推荐指数
1
解决办法
1万
查看次数

如何在具有撤消功能的缓冲区上绘图?

虽然我没有做一些动画或绘制非常复杂的图形.
我需要(有点)双缓冲来绘制几个基元.在应用程序中,用户输入Shape的名称,后跟相关参数,并在缓冲区上绘制该形状,然后在屏幕上绘制.例如命令是RECT 100, 50, 200, 120.

对于持久性,我可以将所有命令存储在列表中,在
public void paintComponent(Graphics g)JPanel中我逐个绘制它们.
但这是非常低效的,因为每次遍历列表并使用哈希映射来调用(或调度)相关的形状绘图界面.

我可以如何以及在什么类型的缓冲区绘制?不同的方法如何利用这个缓冲区?

另外有一种方便的方法可以使用缓冲区撤消以前的绘制吗?或者每次撤消时我是否需要重绘缓冲区?

谢谢,我不想要完整的代码,但是相关的类名和小伪代码是值得赞赏的.

java swing buffer jpanel graphics2d

4
推荐指数
1
解决办法
311
查看次数

需要帮助理解挥杆代码

我开发了一个带有椭圆形和按钮的swing应用程序,其输出如下所示,代码如下: -

在此输入图像描述

码:-

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;


public class AlphaCompositeDemo extends JFrame{
AlphaCompositeDemo()
{
super("AlphaComposite Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,400);
setLayout(new FlowLayout());

setBackground(new Color(0.2f,0.7f,0.1f,0.4f));
comp c=new comp();

add(c);
add(new JButton("Click"));
setVisible(true);
}
public static void main(String args[])
{
JFrame.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable(){public void run(){new AlphaCompositeDemo();}});
}
}

class comp extends JComponent
{
public void paintComponent(Graphics g)
{
    Graphics2D g2=(Graphics2D)g.create();
    g2.setComposite(AlphaComposite.SrcOver);
    g2.setColor(Color.RED);
    g2.fillOval(50, 50, 220, 120);
}
public …
Run Code Online (Sandbox Code Playgroud)

java swing graphics2d paintcomponent translucency

4
推荐指数
1
解决办法
131
查看次数

需要帮助来理解swing代码中的意外输出

我开发了一个应用程序来产生以下输出: - 在此输入图像描述

我重写了JPanel的getPrefferredSize,但是为什么我在更改大小时没有观察到输出的任何变化.即使我将大小设置为0,0图表根本没有翻译,我得到的输出与上面显示的相同.

这是我的完整代码: -

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


public class Skeleton extends JFrame{
Skeleton()
{
super("Donut");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,400);

add(new Board());
setVisible(true);
}
public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable(){public void run(){new Skeleton();}});
}
}

class Board extends JPanel
{
public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    Graphics2D g2=(Graphics2D)g;
    RenderingHints rh=new RenderingHints(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    //the following statement has no noticeable effect.
    rh.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    g2.setRenderingHints(rh); …
Run Code Online (Sandbox Code Playgroud)

java swing timer layout-manager graphics2d

4
推荐指数
1
解决办法
89
查看次数

如何实现椭圆形GradientPaint?

我们知道有一个RadialGradientPaint用Java 命名的类,我们可以使用它来绘制圆形渐变画.

但我想要一个椭圆形(椭圆形)GradientPaint.如何实现椭圆形GradientPaint

java awt radial-gradients affinetransform graphics2d

4
推荐指数
1
解决办法
4098
查看次数

如何使用透明填充缩放 Graphics2D 图像

我正在尝试编写一个小方法,该方法获取BufferedImage图像和新的宽度和高度,并通过根据图像向左/右或顶部/底部添加透明边框来缩放图像以保持纵横比。缩放效果很好,但对于我的生活,我无法让边框变得透明。

到目前为止,我在 pastebin.com发布以下代码,它可以很好地进行缩放。

我已经阅读了很多手册和其他 SO 问题,但无济于事。我尝试了大量的填充、复合类型、图像类型等排列。有时我会得到蓝色背景,有时是白色,但它似乎永远不会是透明的。

BufferedImage newImg = new BufferedImage(newWidth, newHeight, img.getType());
Graphics2D g = newImg.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, newWidth, newHeight);
g.drawImage(img, x, y, x + scaledWidth, y + scaledHeight, 0, 0,
    currentWidth, currentHeight, Color.WHITE, null);
g.dispose();
return newImg;
Run Code Online (Sandbox Code Playgroud)

知道我需要调用什么 Graphics2D 来使Color.WHITE背景透明在新图像上绘制旧图像吗?谢谢你的帮助。

编辑:

事实证明,我遇到的问题是我试图用 JPEG 图像生成透明颜色。JPEG 不支持透明度。呃。

java transparency image alpha-transparency graphics2d

4
推荐指数
1
解决办法
3838
查看次数

Java - 创建图像

我目前正在开发一个Java游戏,我试图在不使用任何图像文件的情况下创建背景.图像由分成4个三角形的正方形组成,每个三角形都是不同的颜色.

如果有人能指出我使用Graphics2D然后将其保存到a BufferedImage,那就太好了.

java image graphics2d

4
推荐指数
1
解决办法
9663
查看次数

鼠标快速移动时防止虚线

当鼠标快速移动时,有谁知道如何绘制实线?当我慢慢移动鼠标时,线条被绘制为实线,但是当鼠标快速移动时,线条就像虚线一样绘制,如此处所示.线快速绘制

绘制线条的代码目前是这样的:

private final class MouseL extends MouseAdapter implements MouseMotionListener
{
    @Override
    public void mouseClicked(MouseEvent e)
    {
        Point p = e.getPoint();
        int half = brushDiameter / 1200;
        Graphics2D g = getImage().createGraphics();
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g.setPaint(getColor());
        g.fillOval(p.x - half, p.y - half, brushDiameter, brushDiameter);
        g.dispose();
        repaint(p.x - half, p.y - half, brushDiameter, brushDiameter);
    }

    @Override
    public void mouseDragged(MouseEvent e)
    {
        mouseClicked(e);
    }
Run Code Online (Sandbox Code Playgroud)

但我想改变它,使线看起来很稳固.非常感谢任何有助于实现这一目标的帮助.

java drawing mouseevent graphics2d netbeans-7

4
推荐指数
1
解决办法
69
查看次数

java:Graphics2D版的折线?

好的,所以有一个Line2D和一个Rectangle2D可以用来Graphics2D.draw()代替Graphics.drawLine()Graphics.drawRectangle().

是否有类似的"升级" Graphics.drawPolyLine()

java graphics2d

3
推荐指数
1
解决办法
3501
查看次数