不矢量素材制作软件源程序_第1页
不矢量素材制作软件源程序_第2页
不矢量素材制作软件源程序_第3页
不矢量素材制作软件源程序_第4页
不矢量素材制作软件源程序_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ackage .xmu.software.ui;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimen;import java.awt.FlowLayout; import java.awt.Font; import java.awt.GridLayout; import java.awt.Image; import java.util.ArrayList; import java.util.List;import javax.media.opengl.GLCapabilities; import jav

2、ax.media.opengl.GLProfile; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.awt.GLJPanel; import javax.swing.BorderFactory;import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.Jim

3、port javax.swing.J;Bar;import javax.swing.JItem;import javax.swing.JPanel;import javax.swing.JPopup; import javax.swing.JSeparator; import javax.swing.JSlider; import javax.swing.JTabbedPane;import javax.swing.JTextField;import javax.swing.SwingUtilities;import javax.swing.ToolTipManager;import .pus

4、hingpixelbstance.api.SubstanceLookAndFeel;import .pushingpixelbstance.api.skin.CremeCoffeeSkin;import .xmu.software.eventproser.ControlMouseProser;import .xmu.software.eventproser.ControlsListener;import .xmu.software.eventproser.GLEventProser;import .xmu.software.util.Constants;import .xmu.software

5、.util.NumberField;import .xmu.software.util.SicData;public class DiffuCurvesUI extends JFrameprivate sprivate Jic final long serialVerUID = 1L;BartopJBar;private Jfile,edit,view,window;private JPopup colorPopup,shPopup;/右键弹出菜单privateJItemnewItem,openItem,saveItem,saveAsItem,attributeItem,recentlyOpe

6、nItem, exitItem,untem, retem, cutItem, copyItem, pasteItem, clearItem,griddingItem,largerItem,smallerItem,fitScreenItem, fullScreenItem,originalSizeItem,toolBarItem,susPanelItem,colormonPanelItem,addColorPntItem,addShPntItem,removeShPntItem,removeColorPntItem;private JButtondrawRectBtn, handDrawBtn,

7、 drawBtn,drawLineBtn,drawCirc drawCurveBtn,adjustBtn,modifyColorBtn,deleteCurveBtn,exchangeBtn,selectCurveBtn,contrastIncrBtn,contrastDecrBtn,tn,handPanBtn,colorPickerBtn,zoomInBtn,zoomOutBtn, sharpenBtn,blurBtn,lColorShowBtn, rColorShowBtn,othersLbl ;private JSliderblurSlider ;private JTextField bl

8、urTxt;private JSeparatorjs1, js2, js3, js4, js5;private JPanelcolorPanel;private JButtonrgbColorBtn; private JLabelrLabel;private JLabelgLabel;private JLabelbLabel;private JTextField rTxt;private JTextField gTxt;private JTextField bTxt;private JSliderrSlider;private JSlidergSlider;private JSliderbSl

9、ider;privaist colorBtns;privaist customColorBtns;private GLProfile profile;private GLCapabilities capabilities;private GLCanvas glCanvas,imgGlCanvas;private Image srcImage;private ControlsListener controlListener;private ControlMouseProprivate JButton addBtn;/private JButton customBtn; ser controlMo

10、useListener;private JLabeldrawLbl, editLbl, globalControlLbl, bitmapLbl,smoothBtn,magnetBtn,stn ,repairColorBtn,undoBtn,redoBtn,diffuseBtn,clelBtn,switchImagePanelBtn,showBitMapBtn,showCurveBtn;private JPanel topPanel=new JPanel();private JPanel blurPanel=new JPanel();private JPanel centanel=new JPa

11、nel();/放置画布 状态栏和右侧调板区private JPanel colorRightPanel=new JPanel();/右侧调板区private JPanel toolBarPanel;/面板private JPanel susPanel;/底部状态栏面板private JPanel commonPanel;/公共区/底部状态栏private JLabel poLabel;/鼠标位置private JLabel sizeLabel;/缩放比例private JSlider sizeSlider;private JTextField sizeTxt;/弧线参数private Numb

12、erField startAngleTxt;/起始角度private NumberField endAngleTxt;/终止角度private NumberField radiusTxt;/半径public DiffuCurvesUI()/设置弹出菜单和toolTip以重量级形式弹出JPopup.setDefaultLightWeightPopupEnabled(false);ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false);System.setProperty(sun.awt.noerasebackground

13、, true);controlListener =new ControlsListener(this);/事件器(包括所有的事件);exitItem = new JItem(退出);recentlyOpenItem = new JItem(最近打开的文件);attributeItem = new JItem(属性);saveAsItem = new JItem(另存为);saveItem = new JItem(保存);openItem = new JItem(打开);newItem = new JItem(新建);topJBar.add(window)window= new J(窗口(W);

14、topJBar.add(view)view= new J(视图(V);topJBar.add(edit)edit= new J(编辑(E);topJBar.add(file)file= new J(文件(F);this.setJBar(topJBar);topJBar = new JBar();/菜单栏controlMouseListener=new ControlMouseProser(this);/鼠标事件file.addSeparator();file.add(openItem);file.addSeparator();file.add(saveItem);file.addSeparat

15、or();file.add(saveAsItem);file.addSeparator();file.add(attributeItem);file.addSeparator();file.add(recentlyOpenItem);file.addSeparator();file.add(exitItem);newItem.addActionListener(controlListener);openItem.addActionListener(controlListener);saveItem.addActionListener(controlListener);saveAsItem.ad

16、dActionListener(controlListener);attributeItem.addActionListener(controlListener);recentlyOpenItem.addActionListener(controlListener);exitItem.addActionListener(controlListener);untem = new JItem(撤销);retem = new JItem(重做);cutItem = new JItem(剪切);copyItem = new JItem();pasteItem = new JItem(粘贴);clear

17、Item = new JItem(清除);edit.add(untem);edit.addSeparator();edit.add(retem);file.add(newItem);edit.add(cutItem);edit.addSeparator();edit.add(copyItem);edit.addSeparator();edit.add(pasteItem);edit.addSeparator();edit.add(clearItem);untem.addActionListener(controlListener);retem.addActionListener(control

18、Listener);cutItem.addActionListener(controlListener);copyItem.addActionListener(controlListener);pasteItem.addActionListener(controlListener);clearItem.addActionListener(controlListener);griddingItem = new JItem(网格);largerItem = new JItem(放大);smallerItem = new JItem(缩小);fitScreenItem = new JItem(适合屏

19、幕);fullScreenItem = new JItem(填充屏幕);originalSizeItem = new JItem(实际大小);viewview.add(griddingItem);.addSeparator();view.add(largerItem);view.addSeparator();view.add(smallerItem);view.addSeparator();view.add(fitScreenItem);view.addSeparator();view.add(fullScreenItem);edit.addSeparator();view.add(origi

20、nalSizeItem);griddingItem.addActionListener(controlListener);largerItem.addActionListener(controlListener);smallerItem.addActionListener(controlListener);fitScreenItem.addActionListener(controlListener);fullScreenItem.addActionListener(controlListener);originalSizeItem.addActionListener(controlListe

21、ner);toolBarItem = new JItem();commonPanelItem = new JItem(公共区);/OriginalPicItem = new JItem(原图);susPanelItem = new JItem(状态栏);colorRightPanelItem =new JItem(调板区);window.add(toolBarItem);window.addSeparator();window.add(commonPanelItem);window.addSeparator();window.add(susPanelItem);window.addSepara

22、tor();window.add(colorRightPanelItem);window.addSeparator();toolBarItem.addActionListener(controlListener);commonPanelItem.addActionListener(controlListener);susPanelItem.addActionListener(controlListener);colorRightPanelItem.addActionListener(controlListener);JPanel panel=new JPanel();view.addSepar

23、ator();panel.setLayout(null);/工具toolBarPanel=new JPanel();/面板toolBarPanel.setLayout(null);toolBarPanel.setPreferredSize(new Dimen(Constants.toolBarPanelWidth,Constants.frameHeight-Constants.Height);Constants.frameHeight-Constants.Height);/绘制drawRectBtn = new JButton(new ImageIcon(iconsdrawRect.png);

24、 / 绘制矩形drawRectBtn.setToolTipText(绘制矩形);drawRectBtn.setBounds(10, 20, 20, 20);drawRectBtn.addMouseListener(controlMouseListener);drawRectBtn.addActionListener(controlListener);toolBarPanel.add(drawRectBtn);handDrawBtn = new JButton(new ImageIcon(iconsdrawHandCurve.png); / 手绘曲线handDrawBtn.setToolTipT

25、ext(手绘曲线);handDrawBtn.setBounds(10, 50, 20, 20);handDrawBtn.addMouseListener(controlMouseListener);handDrawBtn.addActionListener(controlListener);toolBarPanel.add(handDrawBtn);drawBtn = new JButton(new ImageIcon(iconsdrawCatmull.png); /曲线drawBtn.setToolTipText(曲线);drawBtn.setBounds(10, 80, 20, 20);d

26、rawBtn.addMouseListener(controlMouseListener);toolBarPanel.setBounds(0,0,Constants.toolBarPanelWidth,drawBtn.addActionListener(controlListener);toolBarPanel.add(drawBtn);drawLineBtn = new JButton(new ImageIcon(iconsdrawLine.png); /直线drawLineBtn.setToolTipText(直线); drawLineBtn.setBounds(10, 110, 20,

27、20);drawLineBtn.addMouseListener(controlMouseListener);drawLineBtn.addActionListener(controlListener);toolBarPanel.add(drawLineBtn);drawCirctn = new JButton(new ImageIcon(iconsdrawCircle.png); /圆drawCirctn.setToolTipText(圆);drawCirctn.setBounds(10, 140, 20, 20);drawCirctn.addMouseListener(controlMou

28、seListener);drawCirctn.addActionListener(controlListener);toolBarPanel.add(drawCirctn);drawCurveBtn = new JButton(new ImageIcon(iconsdrawCurve.png); /弧形drawCurveBtn.setToolTipText(弧形);drawCurveBtn.setBounds(10, 170, 20, 20);drawCurveBtn.addMouseListener(controlMouseListener);drawCurveBtn.addActionLi

29、stener(controlListener);toolBarPanel.add(drawCurveBtn);js1 = new JSeparator();/分隔符js1.setBounds(5, 200, 30, 1);js1.setOrienion(JSeparator.HORIZONTAL);toolBarPanel.add(js1);/曲线编辑selectCurveBtn = new JButton(new ImageIcon(iconsselectOne.png);/选择单条曲线selectCurveBtn.setBounds(10, 210, 20, 20);selectCurve

30、Btn.setToolTipText(选择单条曲线);selectCurveBtn.addMouseListener(controlMouseListener);selectCurveBtn.addActionListener(controlListener);toolBarPanel.add(selectCurveBtn);exchangeBtn = new JButton(new ImageIcon(iconsswitch_clr.png);/交换曲线两侧颜色exchangeBtn.setBounds(10, 240, 20, 20);exchangeBtn.setToolTipText(

31、交换曲线两侧颜色);exchangeBtn.addMouseListener(controlMouseListener);exchangeBtn.addActionListener(controlListener);toolBarPanel.add(exchangeBtn);modifyColorBtn = new JButton(new ImageIcon(iconsmodifAttrib.png); /更改控制点两侧颜色modifyColorBtn.setBounds(10, 270, 20, 20);modifyColorBtn.setToolTipText(更改控制点两侧颜色);mod

32、ifyColorBtn.addMouseListener(controlMouseListener);modifyColorBtn.addActionListener(controlListener);toolBarPanel.add(modifyColorBtn);adjustBtn = new JButton(new ImageIcon(iconsmovePo.png); /控制点编辑adjustBtn.setBounds(10, 300, 20, 20);adjustBtn.setToolTipText(控制点编辑);adjustBtn.addMouseListener(controlM

33、ouseListener);adjustBtn.addActionListener(controlListener);toolBarPanel.add(adjustBtn);deleteCurveBtn=new JButton(new ImageIcon(iconsdustbin.png);/删除deleteCurveBtn.setBounds(10, 330, 20, 20);deleteCurveBtn.setToolTipText(删除);deleteCurveBtn.addMouseListener(controlMouseListener);deleteCurveBtn.addAct

34、ionListener(controlListener);toolBarPanel.add(deleteCurveBtn);js3 = new JSeparator();/分隔符js3.setBounds(5, 360, 30, 1);js3.setOrienion(JSeparator.HORIZONTAL);toolBarPanel.add(js3);/位图矢量化工具magnetBtn = new JButton(new ImageIcon(iconsmagnet.png);/抽取曲线magnetBtn.setBounds(10, 370, 20, 20);magnetBtn.setToo

35、lTipText(抽取曲线);magnetBtn.addMouseListener(controlMouseListener);magnetBtn.addActionListener(controlListener);SicData.isCartoon=true; toolBarPanel.add(magnetBtn);stn = new JButton(new ImageIcon(iconssle.png);/抽取曲线颜色stn.setBounds(10, 400, 20, 20);stn.setToolTipText(抽取曲线颜色);sstn.addMouseListener(contro

36、lMouseListener);tn.addActionListener(controlListener);SicData.isCartoon=true; toolBarPanel.add(stn);diffuseBtn = new JButton(new ImageIcon(iconsdiffuse.png);/扩散diffuseBtn.setBounds(10,430,20,20);diffuseBtn.setToolTipText(扩散);diffuseBtn.addMouseListener(controlMouseListener);diffuseBtn.addActionListe

37、ner(controlListener);toolBarPanel.add(diffuseBtn);repairColorBtn = new JButton(new ImageIcon(iconsrepairColor.png);/修复repairColorBtn.setBounds(10,460,20,20);repairColorBtn.setToolTipText(修复);repairColorBtn.addMouseListener(controlMouseListener);repairColorBtn.addActionListener(controlListener);toolB

38、arPanel.add(repairColorBtn);js4 = new JSeparator();/分隔符js4.setBounds(5, 490, 30, 1);js4.setOrienion(JSeparator.HORIZONTAL);toolBarPanel.add(js4);panel.add(toolBarPanel);/在主面板中加入面板(左侧)/公共区commonPanel=new JPanel();commonPanel.setLayout(null);commonPanel.setPreferredSize(new Dimen(centanel.getWidth()mo

39、nPanelHeight);commonPanel.setBounds(Constants.toolBarPanelWidth+Constants.canvasSpacing*2, 0,monPanelWidth,monPanelHeight);/commonPanel.addMouseListener(controlMouseListener);/一般工具handPanBtn = new JButton(new ImageIcon(iconshandPan.png);/移动handPanBtn.setBounds(10, 10, 20, 20);handPanBtn.setToolTipTe

40、xt(移动);handPanBtn.addMouseListener(controlMouseListener);handPanBtn.addActionListener(controlListener);commonPanel.add(handPanBtn);colorPickerBtn = new JButton(new ImageIcon(iconspickng);/颜色拾取器colorPickerBtn.setBounds(40, 10, 20, 20);colorPickerBtn.setToolTipText(颜色拾取器);colorPickerBtn.addMouseListen

41、er(controlMouseListener);colorPickerBtn.addActionListener(controlListener);commonPanel.add(colorPickerBtn);sharpenBtn = new JButton(new ImageIcon(iconssharpen.png);/锐化sharpenBtn.setBounds(70, 10, 20, 20);sharpenBtn.setToolTipText(锐化);sharpenBtn.addMouseListener(controlMouseListener);commonPanel.add(

42、sharpenBtn);smoothBtn = new JButton(new ImageIcon(iconsdroplet.png);/模糊smoothBtn.setBounds(100, 10, 20, 20);smoothBtn.setToolTipText(模糊);smoothBtn.addMouseListener(controlMouseListener);smoothBtn.addActionListener(controlListener);commonPanel.add(smoothBtn);zoomInBtn = new JButton(new ImageIcon(icon

43、szoomIn.png);/放大zoomInBtn.setBounds(130, 10, 20, 20);zoomInBtn.setToolTipText(放大);zoomInBtn.addMouseListener(controlMouseListener);zoomInBtn.addActionListener(controlListener);commonPanel.add(zoomInBtn);zoomOutBtn = new JButton(new ImageIcon(iconszoomOut.png);/缩小zoomOutBtn.setBounds(160, 10, 20, 20)

44、;zoomOutBtn.setToolTipText(缩小);zoomOutBtn.addMouseListener(controlMouseListener);zoomOutBtn.addActionListener(controlListener);commonPanel.add(zoomOutBtn);contrastIncrBtn = new JButton(new ImageIcon(iconscontrast_incr.png);/增加亮度contrastIncrBtn.setBounds(190, 10, 20, 20);contrastIncrBtn.setToolTipTex

45、t(增加亮度);contrastIncrBtn.addActionListener(controlListener);contrastIncrBtn.addMouseListener(controlMouseListener);commonPanel.add(contrastIncrBtn);contrastDecrBtn = new JButton(new ImageIcon(iconscontrast_decr.png);/减少亮度contrastDecrBtn.setBounds(220, 10, 20, 20);contrastDecrBtn.setToolTipText(减少亮度);

46、contrastDecrBtn.addMouseListener(controlMouseListener);contrastDecrBtn.addActionListener(controlListener);commonPanel.add(contrastDecrBtn);undoBtn=new JButton(new ImageIcon(iconsundo.png);/撤销undoBtn.setBounds(250,10,20,20);undoBtn.setToolTipText(撤销);undoBtn.addMouseListener(controlMouseListener);und

47、oBtn.addActionListener(controlListener);commonPanel.add(undoBtn);redoBtn=new JButton(new ImageIcon(iconsredo.png);/重做redoBtn.setBounds(280,10,20,20);redoBtn.setToolTipText(重做);redoBtn.addMouseListener(controlMouseListener);redoBtn.addActionListener(controlListener);commonPanel.add(redoBtn);js2 = new

48、 JSeparator();/分隔符js2.setBounds(310, 5, 1, 30);js2.setOrienion(JSeparator.VERTICAL);commonPanel.add(js2);/其他选择框lColorShowBtn = new JButton();/曲线左侧颜色lColorShowBtn.setBounds(320,10,20,20);lColorShowBtn.setBackground(SicData.leftColor);lColorShowBtn.setToolTipText(曲线左侧颜色);lColorShowBtn.addMouseListener

49、(controlMouseListener);lColorShowBtn.addActionListener(controlListener);commonPanel.add(lColorShowBtn);rColorShowBtn = new JButton();/曲线右侧颜色rColorShowBtn.setBounds(350,10,20,20);rColorShowBtn.setBackground(SicData.rightColor);rColorShowBtn.setToolTipText(曲线右侧颜色);rColorShowBtn.addMouseListener(contro

50、lMouseListener);rColorShowBtn.addActionListener(controlListener);commonPanel.add(rColorShowBtn);showBitMapBtn = new JButton(new ImageIcon(iconsdroplet2.png);/显示位图showBitMapBtn.setBounds(380,10,20,20);showBitMapBtn.setToolTipText(显示位图);showBitMapBtn.setBorder(BorderFactory.creaoweredBevelBorder();sho

51、wBitMapBtn.setBackground(Constants.pressColor);showBitMapBtn.addMouseListener(controlMouseListener);showBitMapBtn.addActionListener(controlListener);commonPanel.add(showBitMapBtn);showCurveBtn = new JButton(new ImageIcon(iconsstylize.png);/显示曲线showCurveBtn.setBounds(410,10,20,20);showCurveBtn.setToo

52、lTipText(显示曲线);showCurveBtn.addMouseListener(controlMouseListener);showCurveBtn.addActionListener(controlListener);showCurveBtn.setBorder(BorderFactory.creaoweredBevelBorder();showCurveBtn.setBackground(Constants.pressColor);commonPanel.add(showCurveBtn);blurBtn = new JButton(new ImageIcon(iconsrepa

53、ir.png);/模糊化blurBtn.setBounds(440,10,20,20);blurBtn.setToolTipText(模糊化);blurBtn.addMouseListener(controlMouseListener);blurBtn.addActionListener(controlListener);commonPanel.add(blurBtn);switchImagePanelBtn = new JButton(new ImageIcon(iconsswitchPanel.png);/交换面板switchImagePanelBtn.setBounds(470,10,2

54、0,20);switchImagePanelBtn.setToolTipText(交换面板);switchImagePanelBtn.addMouseListener(controlMouseListener);switchImagePanelBtn.addActionListener(controlListener);commonPanel.add(switchImagePanelBtn);clelBtn = new JButton(new ImageIcon(iconsclear.png);/清除clelBtn.setBounds(500,10,20,20);clelBtn.setTool

55、TipText(清除);cleclelBtn.addMouseListener(controlMouseListener);lBtn.addActionListener(controlListener);commonPanel.add(clelBtn);JSeparator js = new JSeparator();/分隔符js.setBounds(530, 5, 1, 30);js.setOrienion(JSeparator.VERTICAL);commonPanel.add(js);/JTabbedPane arcParametane=new JTabbedPane();/arcPar

56、ametatBounds(540, -20, 210, 60);/commonPanel.add(arcParametane);/JPanel arcParametanel=new JPanel();/arcParametane.add(arcParametanel);/arcParametatTitleAt(0, 弧参数);/arcParametatFont(new Font(Font.SERIF,Font.PLAIN,10);JLabel startLbl=new JLabel(起始:);startLbl.setFont(new Font(Font.SERIF, Font.PLAIN, 1

57、2);startLbl.setBounds(540, 10, 30, 20);commonPanel.add(startLbl);/startLbl.setBounds(0,0,30,20);/arcParametanel.add(startLbl);startAngleTxt=new NumberField();startAngleTxt.setBounds(570, 10, 30, 20);/startAngleTxt.setBounds(30,0,30,20);startAngleTxt.setText(30);startAngleTxt.setName(startAngle);star

58、tAngleTxt.addFocusListener(startAngleTxt);commonPanel.add(startAngleTxt);/arcParametanel.add(startAngleTxt);JLabel endLbl=new JLabel(终止:);endLbl.setFont(new Font(Font.SERIF, Font.PLAIN, 12);endLbl.setBounds(610, 10, 30, 20);commonPanel.add(endLbl);/endLbl.setBounds(70,0,30,20);/arcParametanel.add(en

59、dLbl);endAngleTxt=new NumberField();endAngleTxt.setBounds(640, 10, 30, 20);/endAngleTxt.setBounds(100,0,30,20);endAngleTxt.setText(120);endAngleTxt.setName(endAngle);endAngleTxt.addFocusListener(endAngleTxt);commonPanel.add(endAngleTxt);/arcParametanel.add(endAngleTxt);JLabel radiusLbl=new JLabel(弧半

60、径:);radiusLbl.setFont(new Font(Font.SERIF, Font.PLAIN, 12);radiusLbl.setBounds(680, 10, 40, 20);commonPanel.add(radiusLbl);/radiusLbl.setBounds(140,0,40,20);/arcParametanel.add(radiusLbl);radiusTxt=new NumberField();radiusTxt.setBounds(720, 10, 30, 20);/radiusTxt.setBounds(180, 0, 30, 20);radiusTxt.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论