微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在JFrame中使用坐标平面

如何解决在JFrame中使用坐标平面

Co-ordinatesTOP LEFT SIDE屏幕的此处开始,随着的增加X,您将向前进RIGHT SIDE,而随着的增加Y,您将向前进DOWNWARDS。这是一个小的示例程序,您可以通过单击它的任意位置更好地理解它。

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

public class DrawingExample
{
    private int x;
    private int y;
    private String text;
    private DrawingBase canvas;

    private void displayGUI()
    {
        JFrame frame = new JFrame("Drawing Example");
        frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);

        canvas = new DrawingBase();
        canvas.addMouseListener(new MouseAdapter()
        {
            public void mouseClicked(MouseEvent me)
            {
                text = "X : " + me.getX() + " Y : " + me.getY();
                x = me.getX();
                y = me.getY();
                canvas.setValues(text, x, y);
            }
        });

        frame.setContentPane(canvas);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String... args)
    {
        SwingUtilities.invokelater(new Runnable()
        {
            public void run()
            {
                new DrawingExample().displayGUI();
            }
        });
    }
}

class DrawingBase extends JPanel
{
    private String clickedAt = "";
    private int x = 0;
    private int y = 0;

    public void setValues(String text, int x, int y)
    {
        clickedAt = text;
        this.x = x;
        this.y = y;
        repaint();
    }

    public Dimension getPreferredSize()
    {
        return (new Dimension(500, 400));
    }

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        g.drawString(clickedAt, x, y);
    }
}

解决方法

//我正在尝试学习如何在Java中绘制对象。我在此方面做得越来越好,但是一旦在屏幕上获得图像,就很难操作它。我输入的数字对形状的结果没有意义。至少对我来说他们没有。在代数中,如果在x轴上增加一个数字,它将向右移动;如果在y轴上增加一个数字,它将向右移动。那不是这里发生的事情。谁能向我解释这是如何工作的?我还是java的新手,所以解释越多,细节越好。我试图在整个暑假中每天花几个小时学习Java,有时会有些沮丧。任何帮助是极大的赞赏。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。