最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java基于GUI實現(xiàn)簡單畫筆小畫板

 更新時間:2022年06月10日 16:02:38   作者:fa1c4  
這篇文章主要為大家詳細介紹了java基于GUI實現(xiàn)簡單畫筆小畫板,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在一塊畫板上實現(xiàn)鼠標點擊畫圖案的功能(本文未實現(xiàn)拖動劃線功能),供大家參考,具體內(nèi)容如下

思路

與java設計GUI的大體思路一致, 先設置Frame類作為框架, 其中添加組件類作為功能補充. 該設計中需要設置鼠標監(jiān)聽類, 給frame加上組件

this.addMouseListener(new MyMouseListener());

并自己實現(xiàn)一個監(jiān)聽類, implements需要重寫所有方法, 所以使用適配器

private class MyMouseListener extends MouseAdapter

給全局一個points數(shù)組變量, 保存所有點擊的點的信息, 然后重寫frame類的paint方法時改成迭代器依次畫數(shù)組中的點

@Override
? ? public void paint(Graphics g) {
? ? ? ? // paint listen on mouse event
? ? ? ? Iterator iterator = points.iterator();
? ? ? ? while (iterator.hasNext()){
? ? ? ? ? ? Point point = (Point) iterator.next();
? ? ? ? ? ? g.setColor(Color.GREEN);
? ? ? ? ? ? g.fillOval(point.x, point.y, 10, 10);
? ? ? ? }
? ? }

完整代碼

import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;

public class testmousepaint {
? ? public static void main(String[] args) {
? ? ? ? MyFrame myFrame = new MyFrame("IDEA");
? ? }
}

class MyFrame extends Frame{

? ? ArrayList points;

? ? public MyFrame(String title) {
? ? ? ? super(title);
? ? ? ? setBounds(200, 200, 400, 400);
? ? ? ? this.addMouseListener(new MyMouseListener());
? ? ? ? setVisible(true);
? ? ? ? setBounds(200,200,400,400);
? ? ? ? setBackground(Color.white);
? ? ? ? points = new ArrayList<>();
? ? }

? ? @Override
? ? public void paint(Graphics g) {
? ? ? ? // paint listen on mouse event
? ? ? ? Iterator iterator = points.iterator();
? ? ? ? while (iterator.hasNext()){
? ? ? ? ? ? Point point = (Point) iterator.next();
? ? ? ? ? ? g.setColor(Color.GREEN);
? ? ? ? ? ? g.fillOval(point.x, point.y, 10, 10);
? ? ? ? }
? ? }

? ? public void addpoint(Point point){
? ? ? ? points.add(point);
? ? }

? ? private class MyMouseListener extends MouseAdapter{
? ? ? ? @Override
? ? ? ? public void mousePressed(MouseEvent e) {
? ? ? ? ? ? MyFrame frame = (MyFrame) e.getSource();
? ? ? ? ? ? frame.addpoint(new Point(e.getX(), e.getY()));

? ? ? ? ? ? // click and paint every time
? ? ? ? ? ? frame.repaint();

? ? ? ? }
? ? }

}

實現(xiàn)效果

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

克山县| 甘孜| 云龙县| 丰县| 白水县| 井冈山市| 黄冈市| 班玛县| 卓资县| 永福县| 七台河市| 哈尔滨市| 双辽市| 泌阳县| 宜城市| 高密市| 开封县| 柘荣县| 江阴市| 铜陵市| 通化市| 普定县| 枝江市| 柘城县| 揭阳市| 尚志市| 高要市| 曲阳县| 拉萨市| 张家界市| 茶陵县| 玛多县| 都昌县| 宁陕县| 茶陵县| 山丹县| 章丘市| 应城市| 油尖旺区| 菏泽市| 武山县|