欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

思路

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

this.addMouseListener(new MyMouseListener());

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

private class MyMouseListener extends MouseAdapter

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

@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();

? ? ? ? }
? ? }

}

實(shí)現(xiàn)效果

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

相關(guān)文章

  • Flink自定義Sink端實(shí)現(xiàn)過程講解

    Flink自定義Sink端實(shí)現(xiàn)過程講解

    這篇文章主要介紹了Flink自定義Sink端實(shí)現(xiàn)過程,在Fink官網(wǎng)中sink端只是給出了常規(guī)的write api.在我們實(shí)際開發(fā)場景中需要將flink處理的數(shù)據(jù)寫入kafka,hbase kudu等外部系統(tǒng)
    2023-01-01
  • SSH框架網(wǎng)上商城項(xiàng)目第24戰(zhàn)之Struts2中處理多個Model請求的方法

    SSH框架網(wǎng)上商城項(xiàng)目第24戰(zhàn)之Struts2中處理多個Model請求的方法

    這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第24戰(zhàn)之Struts2中處理多個Model請求的方法,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 一步步教你把SpringBoot項(xiàng)目打包成Docker鏡像

    一步步教你把SpringBoot項(xiàng)目打包成Docker鏡像

    Docker可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化,下面這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目打包成Docker鏡像的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Spring中的AOP動態(tài)代理源碼詳解

    Spring中的AOP動態(tài)代理源碼詳解

    這篇文章主要介紹了Spring中的AOP動態(tài)代理源碼詳解,AOP即面向切面編程也稱面向方面編程,它是面向?qū)ο缶幊蘋OP的一種補(bǔ)充,目前已成為一種比較成熟的編程方式,本文就其源碼進(jìn)行解析,需要的朋友可以參考下
    2023-09-09
  • RestTemplate請求失敗自動重啟機(jī)制精講

    RestTemplate請求失敗自動重啟機(jī)制精講

    這篇文章主要為大家介紹了RestTemplate請求失敗自定義處理的方法,自動重試的機(jī)制精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多所進(jìn)步,早日升職加薪
    2022-03-03
  • SpringBoot 對象存儲 MinIO的詳細(xì)過程

    SpringBoot 對象存儲 MinIO的詳細(xì)過程

    MinIO 是一個基于 Go 實(shí)現(xiàn)的高性能、兼容 S3 協(xié)議的對象存儲,它適合存儲海量的非結(jié)構(gòu)化的數(shù)據(jù),這篇文章主要介紹了SpringBoot 對象存儲 MinIO,需要的朋友可以參考下
    2023-07-07
  • multi-catch和try-catch異常處理知識點(diǎn)詳解

    multi-catch和try-catch異常處理知識點(diǎn)詳解

    在本篇文章里我們給大家分享了一篇關(guān)于multi-catch和try-catch異常處理知識點(diǎn)內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-11-11
  • java 根據(jù)坐標(biāo)截取圖片實(shí)例代碼

    java 根據(jù)坐標(biāo)截取圖片實(shí)例代碼

    這篇文章主要介紹了java 根據(jù)坐標(biāo)截取圖片實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 淺談java二進(jìn)制、十進(jìn)制、十六進(jìn)制、字符串之間的相互轉(zhuǎn)換

    淺談java二進(jìn)制、十進(jìn)制、十六進(jìn)制、字符串之間的相互轉(zhuǎn)換

    下面小編就為大家?guī)硪黄獪\談二進(jìn)制、十進(jìn)制、十六進(jìn)制、字符串之間的相互轉(zhuǎn)換。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-06-06
  • IntelliJ IDEA 如何配置git的操作方法

    IntelliJ IDEA 如何配置git的操作方法

    這篇文章主要介紹了IntelliJ IDEA 如何配置git,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08

最新評論