亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

思路

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

this.addMouseListener(new MyMouseListener());

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

private class MyMouseListener extends MouseAdapter

給全局一個(gè)points數(shù)組變量, 保存所有點(diǎn)擊的點(diǎn)的信息, 然后重寫(xiě)frame類的paint方法時(shí)改成迭代器依次畫(huà)數(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)效果

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

相關(guān)文章

最新評(píng)論