• 大小: 617KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Java
  • 标签: Java  widpws画板  

资源简介

1. 画板UI设计(总体布局) (1)创建窗体并设置相关属性; (2)给整个窗体添加一个中间容器用来覆盖整个窗体; (3)设置边框布局,因为整个画板大致为左边部分,中间部分,菜单栏三个部分,用边框布局比较合适; (4)给窗体添加左面板,中间面板; (5)给左面板添加按钮,并设置按钮图片和效果; (6)给左面板添加左子面板,用来存放颜色按钮; 2.画板功能设计 (1)给左画板中的按钮组中的每个按钮添加鼠标监听器; (2)点击不同按钮,绘制不同的图形; (3)给左子面板中的每个颜色按钮添加鼠标监听器; (4)根据下面板中选中的颜色按钮,来获取按钮的背景颜色,并将该颜色设置成画笔的颜色; (5)铅笔功能 1、铅笔是鼠标拖动时画的线,所需要实现鼠标移动监听器,我们采用一个类来实现多个接口; 2、添加新的鼠标监听器类; 3、在鼠标移动时间中实现画笔的逻辑(其实就是绘制直线,鼠标每移动一个像素,就会触发移动事件,通过移动事件获取鼠标的坐标,与上一次移动的坐标连线就可以了; (6)刷子功能 刷子其实就是加粗的画笔,画出来的直线更粗,这里需要用到Graphic2D画笔来设置画笔的粗细。 (7)橡皮擦功能 橡皮擦就是把画笔颜色设置成相同的背景颜色就可以了,拖动鼠标时进行擦除,所以在鼠标拖动事件中编写。 (8)喷桶功能 1、定位方法:鼠标拖动事件实现; 2、随机数生成:Random; 3、实现原理,在鼠标拖动附近绘制很多的原点; 3. 画板的保存和重绘的设计 (1)给我们的画板添加菜单条、菜单以及菜单项 (2)给每个菜单项添加监听器 (3)点击不同的菜单项实现相应的功能 (4)图形保存功能:利用对象输出流,将容器对象写入文件; (5)打开图形功能:利用对象输入流,将容器对象读入,然后将容器里面的图形对象在画板上绘制出来 (6)新建文件功能:新建文件,将画板上绘制的内容清空(清空之前可以确认是否需要进行保存)清屏(重绘)功能依次方法; (7)文件保存格式为BMP格式; (8)文字功能:读取文本框中的文本并打印到屏幕鼠标的相应的响应位置,传入输入的文字大小的参数,以此来改变文字的大小; 4.弹泡泡功能的设计 根据Java多线程来实现弹泡泡功能;泡泡的位置颜色随机出现,并且做到碰到边框会变色;

资源截图

代码片段和文件信息

package com.picture;

import com.picture.com.ButtonListener;
import com.picture.com.DrawListener;
import java.awt.Graphics2D;
import java.awt.*;
import javax.swing.*;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.border.BevelBorder;
import java.util.ArrayList;
import java.lang.Exception;
import com.picture.com.com.com.com.Point;
import sun.font.EAttribute;
import java.awt.Desktop;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UnsupportedLookAndFeelException;

public class Imageframe extends Jframe{

    //声明颜色属性,并赋默认值
    public Color c=Color.RED;
    //按钮属性
    public  static   JTextField textField;
    public  static   JTextField textField1;
    public JButton  bt ;
    public JPanel panelcenter;
    public Graphics2D g;
    ArrayList list = new ArrayList();//容器
    public void initframe() throws Exception{
//设置窗体相关属性
        this.setSize(700600);
        this.settitle(“图 画 板“);
        this.setDefaultCloseOperation(3);
        this.setLocationRelativeTo(null);

        //把添加菜单作为一个方法封装起来
       addMenu();


//窗体添加主面板
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        this.add(panel);

        panelcenter = new JPanel(){
            public void paint(Graphics g1) {
                g=(Graphics2D)g1;
                super.paint(g);
                for (int i = 0; i                     Point point =(Point) list.get(i);
                    point.Draw(g);
                }
            }
        };

        panelcenter.setBackground(Color.white);
        panel.add(panelcenter);
//主面板添加左面板
        JPanel panelleft = new JPanel();
        panelleft.setPreferredSize(new Dimension(500));
        panelleft.setLayout(new FlowLayout(FlowLayout.LEFT00));
        panelleft.setBackground(new Color(235233238));
        panel.add(panelleftBorderLayout.WEST);

//面板中添加按钮
        ButtonGroup bg = new ButtonGroup();//画板中的按钮统一管理,互相排斥,保证只能选择一个按钮
        for(int i=0;i<15;i++) {
            JRadioButton jrb = new JRadioButton();
//给按钮添加图片
//按钮设置
            if (i != 0 && i != 1 && i != 4 && i != 5 && i != 9 && i != 11 && i != 13) {
                String str1 = “/draw“ + i + “.jpg“;
                String str2 = “/draw“ + i + “-1.jpg“;
                String str3 = “/draw“ + i + “-2.jpg“;
                String str4 = “/draw“ + i + “-3.jpg“;
                ImageIcon img1 = new ImageIcon(this.getClass().getResource(str1));
                ImageIcon img2 = new ImageIcon(this.getClass().getResource(str2));
                ImageIcon img3 = new ImageIcon(this.getClass().getResource(str3));
                ImageIcon img4 = new ImageIcon(this.getClass().getResource(str4));

                jrb.setIcon(img1);//默认图片
                jrb.setRolloverIcon(img2);//鼠标停留在按钮上显示的图片
                jrb.setPressedIcon(img3);//鼠标按下按钮显示的图片
          

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     116197  2017-09-01 13:12  Java画板\emmmmm.jar

     文件     186524  2017-09-01 21:53  Java画板\Java画图板技术报告.docx

     文件        511  2017-08-31 16:32  Java画板\画板\emmmmm.iml

     文件         97  2017-08-18 16:30  Java画板\画板\.idea\description.html

     文件        499  2017-08-18 16:30  Java画板\画板\.idea\misc.xml

     文件        279  2017-08-18 16:33  Java画板\画板\.idea\modules.xml

     文件         91  2017-08-18 16:30  Java画板\画板\.idea\project-template.xml

     文件      51691  2017-09-01 13:13  Java画板\画板\.idea\workspace.xml

     文件       8792  2017-09-01 11:14  Java画板\画板\.idea\uiDesigner.xml

     文件        564  2017-09-01 13:12  Java画板\画板\.idea\artifacts\emmmmm_jar.xml

     文件      61231  2017-08-31 17:00  Java画板\画板\images\Ball.gif

     文件        356  2016-11-09 20:44  Java画板\画板\images\cursorPen.gif

     文件        611  2016-11-09 20:44  Java画板\画板\images\cursorPen.png

     文件        607  2016-11-09 20:44  Java画板\画板\images\draw10-1.jpg

     文件        601  2016-11-09 20:44  Java画板\画板\images\draw10-2.jpg

     文件        628  2016-11-09 20:44  Java画板\画板\images\draw10-3.jpg

     文件        522  2016-11-09 20:44  Java画板\画板\images\draw10.jpg

     文件        571  2016-11-09 20:44  Java画板\画板\images\draw12-1.jpg

     文件        597  2016-11-09 20:44  Java画板\画板\images\draw12-2.jpg

     文件        575  2016-11-09 20:44  Java画板\画板\images\draw12-3.jpg

     文件        542  2016-11-09 20:44  Java画板\画板\images\draw12.jpg

     文件        606  2016-11-09 20:44  Java画板\画板\images\draw14-1.jpg

     文件        653  2016-11-09 20:44  Java画板\画板\images\draw14-2.jpg

     文件        671  2016-11-09 20:44  Java画板\画板\images\draw14-3.jpg

     文件        507  2016-11-09 20:44  Java画板\画板\images\draw14.jpg

     文件        787  2016-11-09 20:44  Java画板\画板\images\draw2-1.jpg

     文件        729  2016-11-09 20:44  Java画板\画板\images\draw2-2.jpg

     文件        783  2016-11-09 20:44  Java画板\画板\images\draw2-3.jpg

     文件       9489  2016-11-09 20:44  Java画板\画板\images\draw2.jpg

     文件        784  2016-11-09 20:44  Java画板\画板\images\draw3-1.jpg

............此处省略151个文件信息

评论

共有 条评论