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

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

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

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

話不多說(shuō),直接看代碼

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)聽(tīng)

? ? ? ? ? ? @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)聽(tīng)
? ? ? ? ? ? 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)用方法
? ? }
}

下面看效果:

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

相關(guān)文章

  • Fluent Mybatis如何做到代碼邏輯和sql邏輯的合一

    Fluent Mybatis如何做到代碼邏輯和sql邏輯的合一

    對(duì)比原生Mybatis, Mybatis Plus或者其他框架,F(xiàn)luentMybatis提供了哪些便利呢?很多朋友對(duì)這一問(wèn)題不是很清楚,今天小編給大家?guī)?lái)一篇教程關(guān)于Fluent Mybatis如何做到代碼邏輯和sql邏輯的合一,一起看看吧
    2021-08-08
  • Springboot工具類ReflectionUtils使用教程

    Springboot工具類ReflectionUtils使用教程

    這篇文章主要介紹了Springboot內(nèi)置的工具類之ReflectionUtils的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-12-12
  • 一文帶你了解Java中的SPI機(jī)制

    一文帶你了解Java中的SPI機(jī)制

    SPI 全稱是 Service Provider Interface,是一種 JDK 內(nèi)置的動(dòng)態(tài)加載實(shí)現(xiàn)擴(kuò)展點(diǎn)的機(jī)制,本文主要為大家介紹了SPI機(jī)制的原理與使用,需要的可以參考一下
    2023-04-04
  • 基于Rest的API解決方案(jersey與swagger集成)

    基于Rest的API解決方案(jersey與swagger集成)

    下面小編就為大家?guī)?lái)一篇基于Rest的API解決方案(jersey與swagger集成)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 關(guān)于webLucene 安裝方法

    關(guān)于webLucene 安裝方法

    webLucene是一個(gè)基于開(kāi)源項(xiàng)目lucene實(shí)現(xiàn)站內(nèi)搜索的工具,關(guān)于它的安裝,百度得到的大多是一樣的,按照步驟也能正確安裝并運(yùn)行,需要注意的問(wèn)題是
    2009-06-06
  • 解決SpringCloud Gateway配置自定義路由404的坑

    解決SpringCloud Gateway配置自定義路由404的坑

    這篇文章主要介紹了解決SpringCloud Gateway配置自定義路由404的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 源碼分析Spring?中?@Qualifier?注解基本用法

    源碼分析Spring?中?@Qualifier?注解基本用法

    這篇文章主要介紹了源碼分析Spring?中?@Qualifier?注解基本用法,在源碼分析的過(guò)程中,也?GET?到?Spring?許多新的玩法,感興趣的小伙伴趕緊去試試吧
    2023-08-08
  • Java中ArrayList的使用詳細(xì)介紹

    Java中ArrayList的使用詳細(xì)介紹

    這篇文章主要介紹了Java中ArrayList的使用,本文給大家詳細(xì)講述該相關(guān)的知識(shí)點(diǎn),并且會(huì)通過(guò)大量的案例加以說(shuō)明,需要的朋友可以參考一下
    2022-04-04
  • java如何使用自己的maven本地倉(cāng)庫(kù)詳解

    java如何使用自己的maven本地倉(cāng)庫(kù)詳解

    這篇文章主要給大家介紹了關(guān)于java如何使用自己的maven本地倉(cāng)庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 如何給HttpServletRequest增加消息頭

    如何給HttpServletRequest增加消息頭

    這篇文章主要介紹了如何給HttpServletRequest增加消息頭的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評(píng)論