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

Java?Swing實(shí)現(xiàn)畫板的簡單操作

 更新時(shí)間:2022年06月10日 11:21:07   作者:Li~蒙奇  
這篇文章主要介紹了Java?Swing實(shí)現(xiàn)畫板的簡單操作,修改顏色,更改圖形,清除,任務(wù)欄按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Java Swing 畫板的操作(修改顏色,更改圖形,清除,任務(wù)欄按鈕),供大家參考,具體內(nèi)容如下

話不多說,直接看代碼

package Swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.awt.image.TileObserver;
import java.awt.image.WritableRenderedImage;

class MyPaiinterPanel extends JPanel{//畫布
? ? BufferedImage image;
? ??
? ? public MyPaiinterPanel(BufferedImage image){
? ? ? ? this.image=image;
? ? }
? ? @Override
? ? public void paint(Graphics g) {
? ? ? ? super.paint(g);
? ? ? ? g.drawImage(image,0,0,null );//繪制指定圖像中當(dāng)前可用的圖像
? ? }
}

public class paint {
? ? JFrame jf=new JFrame();
? ? BufferedImage image=new BufferedImage(600,600,BufferedImage.TYPE_3BYTE_BGR);// 構(gòu)造一個(gè)類型為預(yù)定義圖像類型之一的 BufferedImage
? ? Graphics g= image.getGraphics();
? ? int x1,x2,y1,y2;
? ? String xz="直線";
? ? public void fun(String ys){//設(shè)置畫筆的顏色g
? ? ? ? if(ys.equals("紅色")){
? ? ? ? ? ? g.setColor(Color.red);
? ? ? ? }
? ? ? ? if(ys.equals("白色")){
? ? ? ? ? ? g.setColor(Color.white);
? ? ? ? }
? ? ? ? if(ys.equals("綠色")){
? ? ? ? ? ? g.setColor(Color.green);
? ? ? ? }
? ? }
? ? public void funn(String ys){//設(shè)置畫的圖形
? ? ? ? this.xz=ys;
? ? }

? ? public void init(){
? ? ? ? MyPaiinterPanel mp=new MyPaiinterPanel(image);
? ? ? ? mp.addMouseListener(new MouseAdapter() {//添加監(jiān)聽

? ? ? ? ? ? @Override
? ? ? ? ? ? public void mousePressed(MouseEvent e) {//記錄第一次單擊的位置x1,y1
? ? ? ? ? ? ? ? x1=e.getX();
? ? ? ? ? ? ? ? y1=e.getY();
? ? ? ? ? ? }
? ? ? ? ? ? @Override
? ? ? ? ? ? public void mouseReleased(MouseEvent e) {//第二次單擊的位置x2,y2
? ? ? ? ? ? ? ? x2=e.getX();
? ? ? ? ? ? ? ? y2=e.getY();
? ? ? ? ? ? ? ? if(xz.equals("直線")){//兩點(diǎn)確定直線。。。
? ? ? ? ? ? ? ? ? ? g.drawLine(x1,y1,x2,y2);
? ? ? ? ? ? ? ? }else
? ? ? ? ? ? ? ? if(xz.equals("圓")){
? ? ? ? ? ? ? ? ? ? g.drawOval(x1,y1,Math.abs(x2-x1),Math.abs(y2-y1));
? ? ? ? ? ? ? ? }else
? ? ? ? ? ? ? ? if(xz.equals("矩形")){
? ? ? ? ? ? ? ? ? ? g.drawRect(x1,y1,Math.abs(x2-x1),Math.abs(y2-y1));
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if(xz.equals("清空")){
? ? ? ? ? ? ? ? ? ? //jf.dispose();
? ? ? ? ? ? ? ? ? ? //new paint().init();
? ? ? ? ? ? ? ? ? ? g.clearRect(0,0,600,600);//橡皮擦
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? mp.repaint();//刷新畫布
? ? ? ? ? ? }
? ? ? ? });
? ? ? ??
? ? ? ? JMenuBar bar=new JMenuBar();//設(shè)置任務(wù)欄按鈕
? ? ? ? JMenu jm=new JMenu("顏色");
? ? ? ? JMenuItem[] item=new JMenuItem[7];
? ? ? ? item[0]=new JMenu("紅色");
? ? ? ? item[1]=new JMenu("白色");
? ? ? ? item[2]=new JMenu("綠色");
? ? ? ? item[3]=new JMenu("直線");
? ? ? ? item[4]=new JMenu("圓");
? ? ? ? item[5]=new JMenu("矩形");
? ? ? ? item[6]=new JMenu("清空");
? ? ? ? jm.add(item[0]);
? ? ? ? jm.add(item[1]);
? ? ? ? jm.add(item[2]);
? ? ? ? bar.add(jm);
? ? ? ? JMenu jm1=new JMenu("形狀");
? ? ? ? jm1.add(item[3]);
? ? ? ? jm1.add(item[4]);
? ? ? ? jm1.add(item[5]);
? ? ? ? jm1.add(item[6]);
? ? ? ? bar.add(jm1);

? ? ? ? for(int i=0;i< item.length;i++){//任務(wù)欄按鈕監(jiān)聽
? ? ? ? ? ? int finalI = i;
? ? ? ? ? ? item[i].addMouseListener(new MouseAdapter() {
? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? public void mouseClicked(MouseEvent e) {

? ? ? ? ? ? ? ? ? ? if(item[finalI].getText().equals("紅色")){
? ? ? ? ? ? ? ? ? ? ? ? fun("紅色");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(item[finalI].getText().equals("白色")){
? ? ? ? ? ? ? ? ? ? ? ? fun("白色");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(item[finalI].getText().equals("綠色")){
? ? ? ? ? ? ? ? ? ? ? ? fun("綠色");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(item[finalI].getText().equals("直線")){
? ? ? ? ? ? ? ? ? ? ? ? funn("直線");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(item[finalI].getText().equals("圓")){
? ? ? ? ? ? ? ? ? ? ? ? funn("圓");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(item[finalI].getText().equals("矩形")){
? ? ? ? ? ? ? ? ? ? ? ? funn("矩形");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? if(item[finalI].getText().equals("清空")){
? ? ? ? ? ? ? ? ? ? ? ? funn("清空");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? });
? ? ? ? }
? ? ? ? jf.setJMenuBar(bar);//設(shè)置任務(wù)欄

? ? ? ? jf.add(mp);
? ? ? ? jf.setVisible(true);
? ? ? ? jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
? ? ? ? jf.setSize(600,600);
? ? ? ? jf.setLocationRelativeTo(null);
? ? }

? ? public static void main(String[] args) {
? ? ? ? new paint().init();//調(diào)用方法
? ? }
}

下面看效果:

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

相關(guān)文章

  • Spring4下validation數(shù)據(jù)校驗(yàn)無效(maven)的解決

    Spring4下validation數(shù)據(jù)校驗(yàn)無效(maven)的解決

    這篇文章主要介紹了Spring4下validation數(shù)據(jù)校驗(yàn)無效(maven)的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java 實(shí)戰(zhàn)練手項(xiàng)目之校園超市管理系統(tǒng)的實(shí)現(xiàn)流程

    Java 實(shí)戰(zhàn)練手項(xiàng)目之校園超市管理系統(tǒng)的實(shí)現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+Mysql+Maven+Bootstrap實(shí)現(xiàn)一個(gè)校園超市管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Spring Security  整體架構(gòu)操作流程

    Spring Security  整體架構(gòu)操作流程

    這篇文章主要介紹了Spring Security  整體架構(gòu)操作流程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-07-07
  • Java中實(shí)現(xiàn)線程間通信的實(shí)例教程

    Java中實(shí)現(xiàn)線程間通信的實(shí)例教程

    線程通信的目標(biāo)是使線程間能夠互相發(fā)送信號,另一方面線程通信使線程能夠等待其他線程的信號,這篇文章主要給大家介紹了關(guān)于Java中實(shí)現(xiàn)線程間通信的相關(guān)資料,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Springboot如何獲取yml、properties參數(shù)

    Springboot如何獲取yml、properties參數(shù)

    這篇文章主要介紹了Springboot如何獲取yml、properties參數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Struts2中validate數(shù)據(jù)校驗(yàn)的兩種方法詳解附Struts2常用校驗(yàn)器

    Struts2中validate數(shù)據(jù)校驗(yàn)的兩種方法詳解附Struts2常用校驗(yàn)器

    這篇文章主要介紹了Struts2中validate數(shù)據(jù)校驗(yàn)的兩種方法及Struts2常用校驗(yàn)器,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-09-09
  • Spring Cloud Gateway網(wǎng)關(guān)XSS過濾方式

    Spring Cloud Gateway網(wǎng)關(guān)XSS過濾方式

    這篇文章主要介紹了Spring Cloud Gateway網(wǎng)關(guān)XSS過濾方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java對比兩個(gè)實(shí)體的差異分析

    Java對比兩個(gè)實(shí)體的差異分析

    這篇文章主要介紹了Java對比兩個(gè)實(shí)體的差異分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java超詳細(xì)精講數(shù)據(jù)結(jié)構(gòu)之bfs與雙端隊(duì)列

    Java超詳細(xì)精講數(shù)據(jù)結(jié)構(gòu)之bfs與雙端隊(duì)列

    廣搜BFS的基本思想是: 首先訪問初始點(diǎn)v并將其標(biāo)志為已經(jīng)訪問。接著通過鄰接關(guān)系將鄰接點(diǎn)入隊(duì)。然后每訪問過一個(gè)頂點(diǎn)則出隊(duì)。按照順序,訪問每一個(gè)頂點(diǎn)的所有未被訪問過的頂點(diǎn)直到所有的頂點(diǎn)均被訪問過。廣度優(yōu)先遍歷類似與層次遍歷
    2022-07-07
  • mybatis如何批量更新list對象

    mybatis如何批量更新list對象

    這篇文章主要介紹了mybatis如何批量更新list對象問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

汕尾市| 芷江| 淮安市| 咸阳市| 台东县| 玉门市| 萨迦县| 旬邑县| 万宁市| 杭州市| 彭阳县| 若尔盖县| 西乌| 汕尾市| 海盐县| 台中市| 莱州市| 定襄县| 武隆县| 霍林郭勒市| 深圳市| 河间市| 梁山县| 门源| 吉安县| 西宁市| 江阴市| 丘北县| 阿荣旗| 焦作市| 江达县| 高邑县| 巩义市| 大关县| 兴隆县| 法库县| 五华县| 永平县| 镇原县| 大化| 翼城县|