问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java的可视化绘制问题

发布网友 发布时间:2022-04-20 13:55

我来回答

1个回答

热心网友 时间:2023-06-21 23:33

你要用数组或其他的来保存你画的东西,如下即可:



import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MouseDrawPanel extends JFrame
{
private ArrayList<Rectangle> lines = new ArrayList<Rectangle> ();
private int x, y;

public MouseDrawPanel ()
{
setTitle ("Use Mouse Draw");
setLayout (new BorderLayout ());
setSize (500, 400);
setLocationRelativeTo (null);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
JPanel container = new JPanel ()
{
@Override
public void paint ( Graphics g )
{
int size = lines.size ();
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke (new BasicStroke (13));
g2d.setRenderingHint (RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
for ( int i = 0; i < size; i++ )
{
Rectangle p = lines.get (i);
if (p.width != -1)
{
g2d.drawLine (p.x, p.y, p.width, p.height);
}
else
{
g2d.drawLine (p.x, p.y, p.x, p.y);
}
}
}
};
container.addMouseMotionListener (new MouseAdapter ()
{
public void mouseDragged ( MouseEvent e )
{
lines.add (new Rectangle (x, y, e.getX (), e.getY ()));
x = e.getX ();
y = e.getY ();
repaint ();
};
});
container.addMouseListener (new MouseAdapter ()
{
@Override
public void mousePressed ( MouseEvent e )
{
lines.add (new Rectangle (e.getX (), e.getY (), -1, -1));
x = e.getX ();
y = e.getY ();
repaint ();
}

@Override
public void mouseReleased ( MouseEvent e )
{
repaint ();
}
});
add (container, BorderLayout.CENTER);
setVisible (true);
}

public static void main ( String[] args )
{
new MouseDrawPanel ();
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年云南292分能考上什么大学? 2024高考多少分能被焦作大学录取 【芍药花茶】芍药花茶的功效与作用 芍药花茶怎样喝 芍药花茶的介绍 芍药花茶的属性和功效 联想拯救者电竞手机Pro评测 植物大战僵尸花园战争有用的激活码发给我,有用我就采纳 亲亲奶爸《亲亲奶爸》歌词 植物大战花园战争激活码只能用一次? 歌词中带有。我的好爸爸。我的好爸爸。儿女怎能舍得让你走,_百度... edge浏览器没声音是怎么回事-edge浏览器没声音解决办法 java如何做可视化图形编程,可以拖控件的 关于JAVA可视化编程 java 数据可视化 用什么好 JAVA可视化 java如何实现一个排序的界面可视化? java有可视化编程工具吗 eclipse怎么做java的可视化编程? java做可视化怎么做?就是和vb和dephi一样的 java 可视化界面编程 关于JAVA可视化 java编程中结果的可视化表示 如何在Eclipse中进行Java的可视化界面设计 java 如何开发3d可视化 Java怎样进行可视化编程?像MFC那样的。 怎么才能让Java做到可视化编程? eclipse怎么进行 可视化java界面设计? 凤凰自行车还有吗? phoenix是什么牌子的自行车 现在上海凤凰自行车场还生产自行车吗?有人说上海... 凤凰自行车有没有生产公路自行车 java如何可视化编程?需要什么插件吗? 社保卡有效期是多长时间 长沙市社保卡有效期 社保卡几年换一次 社会保障卡有效期是多少年 社保卡的期限是多久啊? 社保卡有效期什么意思 社保卡发下来几年了,从未去银行激活过会过期吗? 社保卡有有效期吗? 社保卡也有有效期吗? 社保卡发下来几年了,从未去银行激活过,多久才算... 社保卡也有有效期? 新办的社保卡为什么显示有使用期限? 每个家庭都有社保卡,从来不用的社保卡里面的钱会... 社保卡有期限吗 中国银行社保卡有效期多长? 中行社保卡的使用期限是多少年?从哪里查看? 长沙银行社保卡怎么激活 社保卡怎么查有效期 平板电脑可以连接u盘看视频吗?