「JAVA绘制移动的矩形」JAVA矩形

博主:adminadmin 2022-12-21 14:09:08 52

本篇文章给大家谈谈JAVA绘制移动的矩形,以及JAVA矩形对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中鼠标拖动画矩形怎么消除拖动的痕迹,最后只得到一个矩形框

这需要对鼠标事件有一定的了解,首先实现鼠标按下和抬起两个事件,按下时记录矩形的起始位置,抬起时记录矩形的最终位置,两个坐标值相减,得到矩形的高度和宽度即可最终确定一个矩形,画出来。

另外最重要的部分是实现拖动痕迹的处理,需要实现的的鼠标拖动的事件(具体可以进行判断比如按住左键拖动,右键拖动等),还记得鼠标按下的事件记录的矩形其实位置吧,拖动事件需要记录当前矩形的位置,两个坐标值相减,得到矩形的高度和宽度即可最终确定一个矩形,画出来。

问题就来了,那就是有两个矩形了,这时在鼠标抬起的事件中删除一个拖动痕迹的矩形。

请问如何用java编写一个软件,可以在上面画一些图形(比如矩形),然后可以选中,并移动甚至放大或者缩小它

给你说下思想

第一种:

用到2个简单面板

第一个面板放到内容面板的中心区域(设置成流式布局)

第二个面板放到第一个面板里面(画矩形)

给面板2注册监听器(鼠标)

后面的自己构思吧

放大或者缩小 根据面板的中心

第二种思想就是直接利用 多文档技术

如何用java写矩形平移和旋转后输出坐标的代码

import java.applet.Applet;

import java.awt.Graphics;

import java.awt.Color;

public class LX3_3 extends Applet {

public void paint(Graphics g) {

g.setColor(Color.red);//设置红颜色

g.drawOval(35,35,100,60);//画椭圆(圆心、宽和高)

g.fillOval(200,15,60,100);//画具有填充色的圆

g.setColor(Color.blue);//设置蓝颜色

g.drawRect(20,130,80,80);//画矩形

g.fillRect(120,130,80,80);//画具有填充色的矩形

g.drawRoundRect(220,130,80,80,20,20);//画圆角矩形

g.fillRoundRect(320,130,80,80,20,20);//画具有填充色的 圆角矩形

}

}

该程序是在Myeclipse的环境下运行的

在二维平面内,画长方形等都只需要改变点的坐标即可实现平移,旋转,缩放

上面还加入了颜色,可供参考

水平有限,但希望对你有帮助

用Java如何在屏幕上(桌面上)画出一个矩形

在java.awt.Graphics类中有绘制矩形的方法.用drawRect(int x, int y, int width, int height)方法画出,,也可以用fillRect()画出以当前颜色填充的矩形.

java画矩形

直接说event是简单,不过总要试一试才敢拿上来讲,所以就全写上来了。。。

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Point;

import java.awt.Rectangle;

import java.awt.event.MouseEvent;

import java.util.ArrayList;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.event.MouseInputAdapter;

import javax.swing.event.MouseInputListener;

public class Test {

public static void main(String[] args) {

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setContentPane(new PaintingPanel());

frame.setBounds(100, 100, 400, 400);

frame.setVisible(true);

}

}

class PaintingPanel extends JPanel {

ArrayListRectangle list;

Rectangle current;

public PaintingPanel() {

list = new ArrayListRectangle();

addMouseMotionListener(mouseHandler);

addMouseListener(mouseHandler);

}

MouseInputListener mouseHandler = new MouseInputAdapter() {

Point startPoint;

public void mousePressed(MouseEvent e) {

startPoint = e.getPoint();

current = new Rectangle();

}

public void mouseReleased(MouseEvent e) {

makeRectangle(startPoint, e.getPoint());

if (current.width 0 current.height 0) {

list.add(current);

current = null;

repaint();

}

}

public void mouseDragged(MouseEvent e) {

if (current != null) {

makeRectangle(startPoint, e.getPoint());

repaint();

}

}

private void makeRectangle(Point p1, Point p2) {

int x = Math.min(p1.x, p2.x);

int y = Math.min(p1.y, p2.y);

int w = Math.abs(p1.x - p2.x);

int h = Math.abs(p1.y - p2.y);

current.setBounds(x, y, w, h);

}

};

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.BLACK);

for (Rectangle rect : list) {

g.fillRect(rect.x, rect.y, rect.width, rect.height);

}

if (current != null) {

g.drawRect(current.x, current.y, current.width, current.height);

}

}

}

JAVA绘制移动的矩形的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JAVA矩形、JAVA绘制移动的矩形的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。