标签: java-2d

Java帮助:重叠的矩形在矩形重叠的地方绘制新的颜色

所以我正在做一个Java作业,我必须创建一个矩形类,该类在绘制重叠矩形的程序中使用,并且在矩形重叠的地方,绘制一个具有新颜色的新矩形。我已经包含了硬件描述的链接,因为我认为让您查看它比我试图解释它更容易。http: //myslu.stlawu.edu/~ltorrey/courses/spring13/cs219/hw /hw6.html

我目前正致力于创建 getOverlap 方法,该方法绘制新的重叠矩形。我必须创建一个显然绘制矩形的绘制方法,并且对 getOverlap 方法是否为先前定义的变量定义新参数然后重新路由到绘制方法感到困惑?任何帮助将不胜感激。

java oop swing awt java-2d

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

如何在 Java 中旋转图像图标

我正在用 Java 创建一个多米诺骨牌游戏。我有以下代码加载,调整大小,然后在屏幕上显示多米诺骨牌图像:

ImageIcon imageIcon = new ImageIcon("images\\4-4.png");
Image image = imageIcon.getImage(); 
Image newimg = image.getScaledInstance(60, 120,  java.awt.Image.SCALE_SMOOTH);  
imageIcon = new ImageIcon(newimg);

JLabel img = new JLabel(imageIcon);
img.setBounds(100, 100, 60, 120);
getContentPane().add(img);
Run Code Online (Sandbox Code Playgroud)

我想要做的是将图像旋转 90 或 -90 度。我在互联网上搜索过,但我发现的例子似乎很复杂。

知道如何旋转我的图像吗?

顺便说一句,如果您认为这不是在多米诺骨牌游戏中显示多米诺骨牌的正确方式,请告诉我。我是java新手。

java swing image java-2d affinetransform

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

Java 3D游戏编程

嗨!在过去的3个月里,我设法掌握了JSE(我之前从未做过编程,我只有HTML/CSS和一些jQuery的背景,但很少).

对于我今年的期末考试,我将不得不创建一个项目,我已经决定了一个策略游戏.我的教授建议我在OpenGL平台上制作3D游戏(游戏将基于RISK - 大部分人都可能听说过这种类型的游戏,因为它曾经很受欢迎).我不知道从哪里开始,或者我应该阅读什么资源,即使是2D游戏,更不用说3D游戏了.

你们可以发布一些资源,我应该遵循哪些步骤来创建Java游戏,书籍或任何其他有用的建议?谢谢.

java graphics java-2d

0
推荐指数
1
解决办法
2473
查看次数

开始使用Drawing和2D API

我正在尝试将一些绘图功能集成到我的程序中.

我有一个JLabel,上面有一个图像集.

我想写一个方法来返回我的图像:

public Graphics getImage(){
    Graphics g = currentImage;
    return g
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将它从JLabel转换为图形对象.然后作为一个简单的测试我想在这张图片上画一条线:

public void paint(Graphics g) {  
    g.drawLine(20, 500, 700, 600);
}
Run Code Online (Sandbox Code Playgroud)

一些帮助开始这个将是伟大的.

java graphics swing java-2d

0
推荐指数
1
解决办法
136
查看次数

通过2次鼠标点击绘制一条线

我试图通过一系列鼠标点击画一条线.

例如,当我从屏幕上的一个点点击到下一个点时,它会连接线条,然后我可以继续点击它继续绘制连续绘图线的下一个点.

这里有一个例子:练习2下的http://oneslime.net/java/Tutorial_2

我相信我的逻辑中有一些错误(不画线,只是一点),但我似乎无法找到它!

有人可以帮帮我吗?

这是我的代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class RoadCreator extends JPanel {

    private MouseHandler mouseHandler = new MouseHandler();

    private Point previousPoint = new Point();
    private Point nextPoint = new Point();
    private boolean drawing;

    public RoadCreator() {
        this.setPreferredSize(new Dimension(640, 480));
        this.addMouseListener(mouseHandler);
       this.addMouseMotionListener(mouseHandler);
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setColor(Color.blue);
        g2d.setRenderingHint(
            RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setStroke(new BasicStroke(8,
            BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
        g.drawLine(previousPoint.x, previousPoint.y, nextPoint.x, nextPoint.y);
    }

    private class …
Run Code Online (Sandbox Code Playgroud)

java awt java-2d graphics2d mouselistener

0
推荐指数
1
解决办法
7185
查看次数

使字体大小小于1个Java GUI

我想在我的网格中为我的图形标记我的哈希标记,但是当我使用偶数字体大小1时,这是大的方法!有没有办法让字体大小小于1?我错过了我编码的方法吗?

这是生成网格并尝试在哈希上添加标签的代码.

     for (double k = myStart1; k <= myEnd1; k = k + (myEnd1 - myStart1) / 8) {
    g2.setColor(Color.BLACK);
        g2.draw(new Line2D.Double(k, (max - min) / 60, k, -(max - min) / 60));
        String labelx=String.valueOf(k);
        Float xCo=Float.parseFloat(Double.toString(k));
        g2.setFont(new Font("SansSerif",Font.PLAIN,1));
        g2.drawString(labelx, xCo, 0);
    }
Run Code Online (Sandbox Code Playgroud)

这是x ^ 2生成的图表的屏幕截图.在此输入图像描述

java user-interface swing java-2d font-size

0
推荐指数
1
解决办法
885
查看次数

如何动态更新java画布?

问题:我正在尝试使用基于用户操作的新绘制对象更新画布.画布剂量得到更新.

我做了什么:用户与DnD动作交互,可转移对象到达画布,调用由我创建的更新图形方法.并且该方法只需使用aldready创建的图形2D对象,并使用它.我已经checkd免打扰作用将图像,对象正确recived在Canvas类,我能打印出来使用System.out.println.

示例代码,具有与我的类似的功能,

油漆类:

    import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JPanel;


public class PaintPanel extends JPanel{

    private Graphics2D drawImage;

    public PaintPanel()
    {

    }

    @Override
    public void paint(Graphics g) {
         drawImage = (Graphics2D) g;
         drawImage.setColor(Color.WHITE);
         drawImage.fillRect(0, 0, getWidth(), getHeight());
    }

    public void updateGraphics(int length,int width)
    {
        drawImage.setColor(Color.black);
        drawImage.drawRect(100, 150, length, width);
        repaint();
    }

}
Run Code Online (Sandbox Code Playgroud)

大型机类:

       import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class MainPaint extends JFrame{


    public MainPaint()
    {
        setTitle("test paint");
        setSize(400,400);
        setLayout(new BorderLayout());

        final PaintPanel …
Run Code Online (Sandbox Code Playgroud)

java swing java-2d jpanel repaint

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

图像未显示在JPanel内部

我想在面板内显示图像.因此,我将图像的路径传递给此方法,打开图像文件并将其传递给专用于在面板内绘制图像的私有类的方法.问题是面板始终保持空白状态,并且不显示任何内容.

这是代码:

JPanel ImagePane; // I want to add image to this

public void getImagePath(String Path)
{       
    BufferedImage image = null;

    try 
    {
        image=ImageIO.read(new File(Path));
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }
    DisplayImage display= new DisplayImage();
    display.getImage(image);
}

private class DisplayImage extends JPanel
{
    private BufferedImage image=null;

    public void getImage(BufferedImage im)
    {
        image=im;
        repaint();
    }

    public void paintComponents(Graphics g)
    {
        g.drawImage(image, 0, 0, image.getWidth() /2, image.getHeight()/2,ImagePane);
    }
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

java swing image java-2d jpanel

0
推荐指数
1
解决办法
1248
查看次数

Java:制作漂亮的JProgressBar

我一直JProgressBars在java中工作的时间不长,而且我所看到的将其设置为漂亮的每个资源都不起作用.我想要的是应用程序,您将看到整个进度条从上到下填充,当值增加时,动画随着大小的增加而播放.我现在拥有的是JProgressBar当它增加值时,它没有动画,当它有一个偏移到右上角时,如下所示:

在此输入图像描述

如你所见,它很难看.我怎样才能看到完整的边框,整个填充和动画JProgressBar

java animation swing java-2d jprogressbar

0
推荐指数
1
解决办法
1913
查看次数

Java Swing移动java.awt.Shape

我们有一个显示一种地图的应用程序.这个Swing应用程序主要绘制一组java.awt.Shapes,java.awt.Graphics2D#draw(Shape)一切都很好.

现在,我必须扩展这个应用程序,以允许我们的用户编辑(移动形状)地图.但是没有translatemove方法java.awt.Shape.所以我无法改变java.awt.Point形状的位置().

我试图覆盖java.awt.Shape#getPathIterator以应用与形状位置匹配的翻译.但这很棘手,因为这个方法已经接受了我必须合并的转换,并且因为要正确PathIterator应该从那开始,(0, 0)因为它是相对于形状位置.

无论如何,这是行不通的,因为它似乎Graphics2D并不总是使用这种方法来绘制java.awt.Shape.

所以现在,我感觉有点迷茫.另一个解决方案可能是让自己绘制形状,但后来我必须重写应用程序的一部分.这不是问题,但我必须知道哪个可能是最好的解决方案:

  1. 找到一招移到一个java.awt.Shape 似乎是最好的解决方案,但我想不出如何做到这一点.

  2. 将应用程序更改为具有自绘图形状 可能很好但是我必须计算myslef contains和其他更复杂的方法.

java swing drawing java-2d

0
推荐指数
1
解决办法
2326
查看次数