版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 計算機科學(xué)與技術(shù)系</b></p><p><b> 課程設(shè)計報告</b></p><p> 2011~2012學(xué)年第一學(xué)期</p><p><b> 2011年9月</b></p><p><b> 需求分析</b>
2、</p><p> 演示程序為用戶可以用畫筆畫出各種圖形,輸入文字,橡皮等各種功能,并且可以保存用戶編輯的圖片,可以打開本地圖片,設(shè)置畫筆與面板背景的顏色。</p><p> ?。?)能用拖橡皮檫的手法繪制各類圖形(直線、橢圓、矩形、文字)</p><p> (2)支持畫筆顏色、文字大小設(shè)置;</p><p> (3)能將畫面中的所有圖
3、形存儲到文件中;</p><p> ?。?)能從文件讀取圖形進行增補;</p><p> ?。?)采用對話框獲取圖形文件名;</p><p> ?。?)利用鼠標選取圖形,刪除;</p><p> 由以上設(shè)計要求可以分析出程序主要是要先使用java圖形界面編輯的方法設(shè)計出一個圖形界面,設(shè)計出的圖形界面要包含一個菜單條JMenuBar,而這個菜
4、單條又包含有幾個菜單如:MenuFile(用于文件的打開,保存,新建,另存為,退出),MenuSight(包括工具箱和狀態(tài)欄,主要用于控制工具欄和鼠標點坐標的顯示和隱藏),MenuColor(用于畫筆和面板背景顏色的設(shè)置),MenuHelp(給用戶提供一些通知,可有可無),其中為了方便用戶比較容易的通過MenuSight控制工具欄和狀態(tài)欄,我們將工具欄和狀態(tài)欄的菜單項用JcheckBoxMenuItem 設(shè)計,這個是可以被選定或取消選定
5、的菜單項。如果被選定,菜單項的旁邊通常會出現(xiàn)一個復(fù)選標記。如果未被選定或被取消選定,菜單項的旁邊就沒有復(fù)選標記。</p><p><b> 二、設(shè)計</b></p><p><b> 1、設(shè)計思想</b></p><p> 關(guān)于主要的設(shè)計就是Java中有關(guān)圖形界面的編程,因此程序中設(shè)計時包括相關(guān)組件的選取,界面的布局
6、方式,事件的監(jiān)聽以及對觸發(fā)事件的的處理。在程序中選取的組件JMenuBar,JCheckBoxMenuItem,JButton,JToggleButton,JToolBar,JfileChooser,JFrame等。布局方式主要是邊界布局,在程序中實現(xiàn)的事件監(jiān)聽有動作事件,窗口事件,鍵盤事件等,使用這些事件分別用來實現(xiàn)程序中規(guī)定的功能。</p><p><b> 2、功能設(shè)計</b><
7、;/p><p> 本程序主要功能就是通過一個圖形界面實現(xiàn)對圖形的編輯,可以對原來存在的文件打開,并對輸入后可以生成文件并保存。關(guān)于這些功能的實現(xiàn)可以使用JFileChooser組件,其中的方法可以實現(xiàn)對打開或者保存的文件顯示出文件名和存儲路徑等功能,符合設(shè)計要求</p><p> 對于畫筆和面板背景顏色的編輯可以使用JColorChooser提供一個用于允許用戶操作和選擇顏色的控制器窗格,
8、然后調(diào)用JcolorChooser 的showDialog()方法就可以調(diào)出畫筆和背景顏色的編輯了</p><p><b> 3、詳細設(shè)計</b></p><p> ?。?)程序主界面是一個窗口,在程序設(shè)計了一個類MyWindowsPlot,它繼承了JFrame類,作用是顯示出一個窗口,在這個窗口中分別添加相關(guān)組件,設(shè)計布局方式,并對相關(guān)組件進行事件監(jiān)聽。主要代碼如
9、下:</p><p> File selFiles;</p><p> Image img;</p><p> public JPanel contentPane;</p><p> BufferedImage image;</p><p> public Color bgColor = new Color
10、(255, 255, 255);</p><p> public Color pColor = new Color (0, 0, 0);</p><p> BorderLayout BorderLayout1 = new BorderLayout();</p><p> JMenuBar jMenuBar1 = new JMenuBar();</p>
11、;<p> JMenu MenuFile = new JMenu();</p><p> JMenuItem MenuNew = new JMenuItem();</p><p> JMenuItem MenuOpen = new JMenuItem();</p><p> JMenuItem MenuSave = new JMenuItem(
12、);</p><p> JMenuItem MenuSaveAs = new JMenuItem();</p><p> JMenuItem MenuExit = new JMenuItem();</p><p> JMenu MenuSight = new JMenu();</p><p> JMenu MenuColor = ne
13、w JMenu();</p><p> JMenuItem MenuEditColor = new JMenuItem();</p><p> JMenuItem MenuEditPencilColor = new JMenuItem(); </p><p> JMenu MenuHelp = new JMenu();</p><p&
14、gt; JMenuItem MenuHelpText = new JMenuItem();</p><p> JMenuItem MenuAbout = new JMenuItem();</p><p> JMenu menuColour = new JMenu();</p><p> JMenuItem itemNative = new JMenuItem
15、();</p><p> JMenuItem itemMotif = new JMenuItem();</p><p> JMenuItem itemMetal = new JMenuItem(); </p><p> JCheckBoxMenuItem tool = new JCheckBoxMenuItem("工具箱(T)");&
16、lt;/p><p> JCheckBoxMenuItem state = new JCheckBoxMenuItem("狀態(tài)欄(F)");</p><p> JToolBar jToolBar1 = new JToolBar();</p><p> JButton jbNew = new JButton();</p><p&
17、gt; JButton jbSave = new JButton();</p><p> JButton jbOpen = new JButton();</p><p> JToggleButton jbPencil = new JToggleButton();</p><p> JToggleButton jbBrush = new JToggleButt
18、on();</p><p> JToggleButton jbBeeline = new JToggleButton();</p><p> JToggleButton jbRotundity = new JToggleButton();</p><p> JToggleButton jbPolygon = new JToggleButton();</p
19、><p> JToggleButton jbRect = new JToggleButton();</p><p> JToggleButton jbFillRotundity = new JToggleButton();</p><p> JToggleButton jbFillRect = new JToggleButton();</p><
20、;p> JToggleButton jbFillPolygon = new JToggleButton(); </p><p> JLabel jLabel1 = new JLabel();</p><p> ImageIcon imageNew = new ImageIcon(MyWindowsPlot.class.getResource("New24.gif
21、"));</p><p> ImageIcon imageSave = new ImageIcon(MyWindowsPlot.class.getResource("Save24.gif"));</p><p> ImageIcon imageOpen = new ImageIcon(MyWindowsPlot.class.getResource(&quo
22、t;Open24.gif"));</p><p> ImageIcon imageFill = new ImageIcon(MyWindowsPlot.class.getResource("Fill.gif"));</p><p> ImageIcon imageBrush = new ImageIcon(MyWindowsPlot.class.getRe
23、source("Brush.gif"));</p><p> ImageIcon imageBeeline = new ImageIcon(MyWindowsPlot.class.getResource("Beeline.gif"));</p><p> ImageIcon imageRotundity = new ImageIcon(MyWin
24、dowsPlot.class.getResource("Rotundity.gif"));</p><p> ImageIcon imagePolygon = new ImageIcon(MyWindowsPlot.class.getResource("Polygon.gif"));</p><p> ImageIcon imageRect =
25、new ImageIcon(MyWindowsPlot.class.getResource("Rect.gif"));</p><p> ImageIcon imageAbout = new ImageIcon(MyWindowsPlot.class.getResource("About24.gif"));</p><p> ImageIcon
26、imageFillRect = new ImageIcon(MyWindowsPlot.class.getResource("fillRect.gif"));</p><p> ImageIcon imageFillOval = new ImageIcon(MyWindowsPlot.class.getResource("fillOval.gif"));</p>
27、;<p> ImageIcon imageFillPolygon = new ImageIcon(MyWindowsPlot.class.getResource("fillPolygon.gif"));</p><p> static Image windowsIcon = Toolkit.getDefaultToolkit().getImage(MyWindowsPlot.
28、class.getResource("12.gif"));</p><p> ButtonGroup cbg;</p><p> MyActionListener maListener;</p><p> MyItemListener miListener;</p><p> //設(shè)置畫筆顏色變量</p>
29、;<p> public Color[] drawLineColor = new Color[10000];</p><p> public Color[] drawOvalColor = new Color[10000];</p><p> public Color[] drawRectColor = new Color[10000];</p><
30、p> public Color[] fillRectColor = new Color[10000];</p><p> public Color[] fillOvalColor = new Color[10000];</p><p><b> //繪制直線的變量</b></p><p> public int countDraw
31、Line = 0;</p><p> public int mousePressedDrawLineX[] = new int[10000], mousePressedDrawLineY[] = new int[10000];</p><p> public int mouseReleasedDrawLineX[] = new int[10000], mouseReleasedDraw
32、LineY[] = new int[10000];</p><p><b> //繪制矩行的變量</b></p><p> public int countDrawRect = 0;</p><p> public int mousePressedDrawRectX[] = new int[10000], mousePressedDraw
33、RectY[] = new int[10000];</p><p> public int mouseReleasedDrawRectX[] = new int[10000], mouseReleasedDrawRectY[] = new int[10000];</p><p> public int mouseDraggedDrawRectX = 0, mouseDraggedDra
34、wRectY = 0;</p><p><b> //繪制圓形的變量</b></p><p> public int countDrawOval = 0;</p><p> public int mouseDraggedDrawOvalX = 0, mouseDraggedDrawOvalY = 0;</p><p&g
35、t; public int mouseReleasedDrawOvalX[] = new int[10000], mouseReleasedDrawOvalY[] = new int[10000];</p><p> public int mousePressedDrawOvalX[] = new int[10000], mousePressedDrawOvalY[] = new int[10000];<
36、;/p><p> //繪制填充圓形的變量</p><p> public int countFillOval = 0;</p><p> public int mouseDraggedFillOvalX = 0, mouseDraggedFillOvalY = 0;</p><p> public int mouseReleasedFil
37、lOvalX[] = new int[10000], mouseReleasedFillOvalY[] = new int[10000];</p><p> public int mousePressedFillOvalX[] = new int[10000], mousePressedFillOvalY[] = new int[10000];</p><p> //繪制多邊形的變量&
38、lt;/p><p> public int countDrawPolygon = 0;</p><p> public int mousePressedDrawPolygonX[] = new int[10000], mousePressedDrawPolygonY[] = new int[10000];</p><p> //繪制填充多邊形的變量</p&g
39、t;<p> public int countFillPolygon = 0;</p><p> public int mousePressedFillPolygonX[] = new int[10000], mousePressedFillPolygonY[] = new int[10000];</p><p> //繪制填充矩形的變量</p><
40、p> public int countFillRect = 0;</p><p> public int mousePressedFillRectX[] = new int[10000], mousePressedFillRectY[] = new int[10000];</p><p> public int mouseReleasedFillRectX[] = new in
41、t[10000], mouseReleasedFillRectY[] = new int[10000];</p><p> public int mouseDraggedFillRectX = 0, mouseDraggedFillRectY = 0;</p><p><b> //繪制畫筆的變量</b></p><p> //Gener
42、alPath對象實例</p><p> GeneralPath gPath = new GeneralPath(); </p><p> Point pencilPoint;</p><p><b> //繪制擦皮的變量</b></p><p> public int countDrawBrush = 0;<
43、;/p><p> public int mouseDrawBrushX[] = new int[10000], mouseDrawBrushY[] = new int[10000];</p><p> //繪制圖形的監(jiān)聽器</p><p> MouseListener mlOneDrawRect, mlTwoDrawRect, mlOneFillRect, mlT
44、woFillRect;</p><p> MouseMotionListener mmlDrawRect, mmlFillRect;</p><p> MouseListener mlOneDrawLine, mlTwoDrawLine;</p><p> MouseListener mlOneDrawOval, mlTwoDrawOval, mlOneFil
45、lOval, mlTwoFillOval;</p><p> MouseMotionListener mmlDrawOval, mmlFillOval;</p><p> MouseListener mlOneDrawPolygon, mlOneFillPolygon;</p><p> MouseListener mlOneDrawPencil;</p
46、><p> MouseMotionListener mmlDrawPencil;</p><p> MouseListener mlOneDrawBrush;</p><p> MouseMotionListener mmlDrawBrush;</p><p> contentPane.setLayout(BorderLayout1);&
47、lt;/p><p> contentPane.setBackground(bgColor); </p><p> setJMenuBar(jMenuBar1);</p><p> setSize(new Dimension(750, 550));</p><p> setTitle("WindowsPlot畫圖板&
48、quot;); </p><p> MenuFile.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuFile.setText("文件(F)");</p><p> MenuFile.setMnemonic('F');&l
49、t;/p><p> MenuNew.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuNew.setText("新建(N)");</p><p> MenuNew.setAccelerator(KeyStroke.getKeyStroke('
50、N', java.awt.Event.CTRL_MASK, false));</p><p> MenuNew.setActionCommand("NewPage");</p><p> MenuOpen.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p&
51、gt; MenuOpen.setText("打開(O)");</p><p> MenuOpen.setAccelerator(KeyStroke.getKeyStroke('O', java.awt.Event.CTRL_MASK, false));</p><p> MenuOpen.setActionCommand("MenuOpe
52、n");</p><p> MenuSave.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuSave.setText("保存(S)");</p><p> MenuSave.setAccelerator(KeyStroke.getK
53、eyStroke('S', java.awt.Event.CTRL_MASK, false));</p><p> MenuSave.setActionCommand("MenuSave");</p><p> MenuSaveAs.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));
54、</p><p> MenuSaveAs.setText("另存為(A)");</p><p> MenuSaveAs.setAccelerator(KeyStroke.getKeyStroke('A', java.awt.Event.CTRL_MASK, false));</p><p> MenuSaveAs.setAc
55、tionCommand("MenuSaveAs");</p><p> MenuExit.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuExit.setText("退出(E)");</p><p> MenuExit.se
56、tAccelerator(KeyStroke.getKeyStroke('E', java.awt.Event.CTRL_MASK, false));</p><p> MenuExit.setActionCommand("Exit");</p><p> MenuSight.setFont(new java.awt.Font("宋體&qu
57、ot;, Font.PLAIN, 13));</p><p> MenuSight.setText("查看(V)");</p><p> MenuSight.setMnemonic('V');</p><p> MenuColor.setFont(new java.awt.Font("宋體", Font.
58、PLAIN, 13));</p><p> tool.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> tool.setAccelerator(KeyStroke.getKeyStroke('T', java.awt.Event.CTRL_MASK, false));</p&g
59、t;<p> state.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> state.setAccelerator(KeyStroke.getKeyStroke('F', java.awt.Event.CTRL_MASK, false));</p><p> Men
60、uColor.setText("顏色(C)");</p><p> MenuColor.setMnemonic('C');</p><p> MenuEditColor.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuEditC
61、olor.setText("背景顏色(B)");</p><p> MenuEditColor.setAccelerator(KeyStroke.getKeyStroke('B', java.awt.Event.CTRL_MASK, false));</p><p> MenuEditColor.setActionCommand("Edit
62、Color");</p><p> MenuEditPencilColor.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuEditPencilColor.setText("畫筆顏色(P)");</p><p> MenuEditPe
63、ncilColor.setAccelerator(KeyStroke.getKeyStroke('P', java.awt.Event.CTRL_MASK, false));</p><p> MenuEditPencilColor.setActionCommand("EditPencilColor"); </p><p> itemMetal.se
64、tActionCommand("itemMetal"); </p><p> MenuHelp.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuHelp.setText("幫助(H)");</p><p>
65、 MenuHelp.setMnemonic('H');</p><p> MenuHelpText.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuHelpText.setText("幫助主題(H)");</p><p> Me
66、nuHelpText.setAccelerator(KeyStroke.getKeyStroke('H', java.awt.Event.CTRL_MASK, false));</p><p> MenuHelpText.setActionCommand("MenuHelpText");</p><p> MenuAbout.setFont(new
67、java.awt.Font("宋體", Font.PLAIN, 13));</p><p> MenuAbout.setText("關(guān)于畫圖(C)");</p><p> MenuAbout.setAccelerator(KeyStroke.getKeyStroke('C', java.awt.Event.CTRL_MASK, f
68、alse));</p><p> MenuAbout.setActionCommand("MenuAbout");</p><p> jToolBar1.setFont(new java.awt.Font("宋體", Font.PLAIN, 13));</p><p> jToolBar1.setFloatable(fa
69、lse);</p><p> jToolBar1.setBounds(new Rectangle(1, 1, 767, 24));</p><p> jbNew.setMaximumSize(new Dimension(29, 27));</p><p> jbNew.setMinimumSize(new Dimension(29, 27));</p&g
70、t;<p> jbNew.setIcon(imageNew);</p><p> jbNew.setActionCommand("jbNew");</p><p> jbNew.setToolTipText("新建");</p><p> jbSave.setMaximumSize(new Dimensi
71、on(29, 27));</p><p> jbSave.setMinimumSize(new Dimension(29, 27));</p><p> jbSave.setIcon(imageSave);</p><p> jbSave.setToolTipText("保存");</p><p> jbSave.
72、setActionCommand("jbSave");</p><p> jbOpen.setMaximumSize(new Dimension(29, 27));</p><p> jbOpen.setMinimumSize(new Dimension(29, 27));</p><p> jbOpen.setIcon(imageOpen
73、);</p><p> jbOpen.setToolTipText("打開");</p><p> jbOpen.setActionCommand("jbOpen");</p><p> jbPencil.setMaximumSize(new Dimension(29, 27));</p><p>
74、; jbPencil.setIcon(imageFill);</p><p> jbPencil.setToolTipText("畫筆");</p><p> jbPencil.setMinimumSize(new Dimension(29, 27));</p><p> jbBrush.setMaximumSize(new Dimens
75、ion(29, 27));</p><p> jbBrush.setToolTipText("擦皮");</p><p> jbBrush.setIcon(imageBrush);</p><p> jbBrush.setMinimumSize(new Dimension(29, 27));</p><p> jb
76、Beeline.setMaximumSize(new Dimension(29, 27));</p><p> jbBeeline.setToolTipText("直線");</p><p> jbBeeline.setIcon(imageBeeline);</p><p> jbBeeline.setMinimumSize(new Dim
77、ension(29, 27));</p><p> jbRotundity.setMaximumSize(new Dimension(29, 27));</p><p> jbRotundity.setIcon(imageRotundity);</p><p> jbRotundity.setToolTipText("圓");</p&
78、gt;<p> jbRotundity.setMinimumSize(new Dimension(29, 27));</p><p> jbPolygon.setMaximumSize(new Dimension(29, 27));</p><p> jbPolygon.setIcon(imagePolygon);</p><p> jbPol
79、ygon.setToolTipText("多邊形");</p><p> jbPolygon.setMinimumSize(new Dimension(29, 27));</p><p> jbRect.setMaximumSize(new Dimension(29, 27));</p><p> jbRect.setIcon(imageR
80、ect);</p><p> jbRect.setToolTipText("矩形");</p><p> jbRect.setMinimumSize(new Dimension(29, 27));</p><p> jbFillRotundity.setMaximumSize(new Dimension(29, 27));</p>
81、;<p> jbFillRotundity.setToolTipText("填充圓形");</p><p> jbFillRotundity.setIcon(imageFillOval);</p><p> jbFillRotundity.setMinimumSize(new Dimension(29, 27));</p><p&
82、gt; jbFillRect.setMaximumSize(new Dimension(29, 27));</p><p> jbFillRect.setToolTipText("填充矩形");</p><p> jbFillRect.setIcon(imageFillRect);</p><p> jbFillRect.setMinim
83、umSize(new Dimension(29, 27));</p><p> jbFillPolygon.setMaximumSize(new Dimension(29, 27));</p><p> jbFillPolygon.setToolTipText("填充多邊形");</p><p> jbFillPolygon.setIcon
84、(imageFillPolygon);</p><p> jbFillPolygon.setMinimumSize(new Dimension(29, 27)); </p><p> state.setSelected(true);</p><p> jLabel1.setText("坐標: ");</p><
85、;p> jLabel1.setBounds(new Rectangle(0, 526, 750, 24));</p><p> jMenuBar1.add(MenuFile);</p><p> jMenuBar1.add(MenuSight);</p><p> jMenuBar1.add(MenuColor);</p><p&g
86、t; jMenuBar1.add(MenuHelp);</p><p> MenuFile.add(MenuNew);</p><p> MenuFile.add(MenuOpen);</p><p> MenuFile.add(MenuSave);</p><p> MenuFile.add(MenuSaveAs);</p&
87、gt;<p> MenuFile.addSeparator();</p><p> MenuFile.add(MenuExit);</p><p> MenuSight.add(tool);</p><p> MenuSight.add(state);</p><p> MenuColor.add(MenuEditCo
88、lor);</p><p> MenuColor.add(MenuEditPencilColor); </p><p> MenuHelp.add(MenuHelpText);</p><p> MenuHelp.addSeparator();</p><p> MenuHelp.add(MenuAbout);
89、 </p><p> jToolBar1.add(jbNew);</p><p> jToolBar1.add(jbSave);</p><p> jToolBar1.add(jbOpen);</p><p> jToolBar1.addSeparator();</p><p> jToolBar1.add
90、(jbPencil);</p><p> jToolBar1.add(jbBrush);</p><p> jToolBar1.add(jbBeeline);</p><p> jToolBar1.add(jbRotundity);</p><p> jToolBar1.add(jbPolygon);</p><p
91、> jToolBar1.add(jbRect);</p><p> jToolBar1.add(jbFillRotundity);</p><p> jToolBar1.add(jbFillRect);</p><p> jToolBar1.add(jbFillPolygon);</p><p> this.add(jTool
92、Bar1, BorderLayout.NORTH);</p><p> this.add(contentPane, BorderLayout.CENTER);</p><p> this.add(jLabel1, BorderLayout.SOUTH);</p><p> //根據(jù)選擇狀態(tài)進行繪圖如:是否為直線,是否畫圓等()</p>&
93、lt;p> cbg = new ButtonGroup();</p><p> cbg.add(jbPencil);</p><p> cbg.add(jbBrush);</p><p> cbg.add(jbBeeline);</p><p> cbg.add(jbRotundity);</p><p&g
94、t; cbg.add(jbPolygon);</p><p> cbg.add(jbRect);</p><p> cbg.add(jbFillRotundity);</p><p> cbg.add(jbFillRect);</p><p> cbg.add(jbFillPolygon);</p><p>
95、 //根據(jù)"查看"菜單下的項目選擇狀態(tài)而動態(tài)加載工具欄</p><p> tool.setSelected(true);</p><p> //以下為 JCheckBoxMenuItem 事件</p><p> miListener = new MyItemListener();</p><p> tool.ad
96、dItemListener(miListener);</p><p> state.addItemListener(miListener);</p><p> //以下代碼為增加事件</p><p> maListener = new MyActionListener();</p><p> MenuExit.addActionLis
97、tener(maListener);</p><p> MenuNew.addActionListener(maListener);</p><p> MenuEditColor.addActionListener(maListener);</p><p> MenuEditPencilColor.addActionListener(maListener);&
98、lt;/p><p> jbNew.addActionListener(maListener);</p><p> MenuSave.addActionListener(maListener);</p><p> MenuSaveAs.addActionListener(maListener);</p><p> MenuOpen.addA
99、ctionListener(maListener);</p><p> MenuAbout.addActionListener(maListener);</p><p> jbPencil.addActionListener(maListener);</p><p> jbBrush.addActionListener(maListener);</p&g
100、t;<p> jbBeeline.addActionListener(maListener);</p><p> jbRotundity.addActionListener(maListener);</p><p> jbPolygon.addActionListener(maListener);</p><p> jbRect.addActi
101、onListener(maListener);</p><p> jbFillRotundity.addActionListener(maListener);</p><p> jbFillRect.addActionListener(maListener);</p><p> jbFillPolygon.addActionListener(maListene
102、r); </p><p> jbSave.addActionListener(maListener);</p><p> jbOpen.addActionListener(maListener);</p><p> MenuHelpText.addActionListener(maListener);</p><p>
103、itemNative.addActionListener(maListener);</p><p> itemMotif.addActionListener(maListener);</p><p> itemMetal.addActionListener(maListener);</p><p> 以上代碼定義了界面上的所有的組件以及監(jiān)聽接口,但是其中有些實
104、現(xiàn)接口繼承類是自己定義的這樣可以在類中只需要定義需要的方法,及觸發(fā)事件需要執(zhí)行的動作,而不需要將原類所有的方法都寫出來,可以減少代量,其實其中還涉及到一些方法:</p><p> 1)setActionCommand(參數(shù))里面的參數(shù)為設(shè)置此組件激發(fā)的操作事件的命令名稱。 如: JButton btnShow = new JButton(); </p><p> btnShow.se
105、tActionCommand("show"); 當這個按鈕被點擊的時候,你就可以用 ActionEvent 的 getActionCommand().equals("show") 去比較觸發(fā)事件的是不是這個按鈕</p><p> 2) setMnemonic(‘ 參數(shù)’)參數(shù)為鍵盤助記符名稱,它與外觀的無鼠標修飾符(通常是 Alt)組合時(如果焦點被包含在此按鈕祖先窗口
106、中的某個地方)</p><p> 將激活此按鈕。 一個助記符必須對應(yīng)鍵盤上的一個鍵,并且應(yīng)該使用 java.awt.event.KeyEvent 中定義的 VK_XXX 鍵代碼之一指定。助記符是不區(qū)分大小寫的,所以具有相應(yīng)鍵代碼的鍵事件將造成按鈕被激活,不管是否按下 Shift 修飾符。 如果在按鈕的標簽字符串中發(fā)現(xiàn)由助記符定義的字符,則第一個出現(xiàn)的助記符將是帶下劃線的,</p><p&g
107、t; 以向用戶指示該助記符。 </p><p> 3)setSelected(參數(shù))參數(shù)為布爾型,可以確定指定菜單項的選擇狀態(tài),如此處是為了獲取查看菜單下的工具和狀態(tài)菜單項的選擇狀態(tài)</p><p> 4)setImage(Image image) 作用是設(shè)置由此圖標顯示的圖像。</p><p> 5)setAccelerator(KeyStrok
108、e.getKeyStroke('O', java.awt.Event.CTRL_MASK, false))</p><p> 置修改鍵,它能直接調(diào)用菜單項的操作偵聽器而不必顯示菜單的層次結(jié)構(gòu)</p><p> /KeyStroke 表示鍵盤或等效輸入設(shè)置上的鍵操作的 KeyStroke。KeyStroke 僅能對應(yīng)于按下或釋放某個特定的鍵,正如 KEY_PRESSED
109、 和 KEY_RELEASED KeyEvents 執(zhí)行的操作;或者,它們可能對應(yīng)于鍵入特定的 Java 字符,正如 KEY_TYPED KeyEvents 執(zhí)行的操作。在所有情況下,KeyStroke 都可以指定修飾符(alt、shift、control、meta、altGraph 或其組合),在針對精確匹配的操作中,這些修飾符必須存在。 </p><p> KeyStroke 用于定義高級(語義)操作事件。
110、不用捕獲每個 keystroke 并拋棄不感興趣的 keystroke,這些重要的 keystroke 會自動在其注冊的 Components 上啟動操作。 KeyStroke 是不可變的,而且是唯一的??蛻舳舜a無法創(chuàng)建 KeyStroke;必須使用 getKeyStroke 的變體。這些工廠方法使得 KeyStroke 實現(xiàn)能夠高效緩存和共享實例。 </p><p> getKeyStroke 在給出一個數(shù)
111、字鍵代碼和一組修飾符的情況下,返回 KeyStroke 的一個共享實例,指定該鍵在按下或釋放時是否為已激活。 可以使用在 java.awt.event.KeyEvent 中定義的“虛擬鍵”常量來指定鍵代碼。</p><p><b> ?。?)保存窗口設(shè)計</b></p><p><b> /保存對話框</b></p><p&
112、gt; public class MyFileChooser extends JFileChooser</p><p><b> {</b></p><p> public MyFileChooser() </p><p><b> {</b></p><p><b> supe
113、r();</b></p><p><b> }</b></p><p> public MyFileChooser(File currentDirectory) </p><p><b> {</b></p><p> super(currentDirectory);</p
114、><p><b> }</b></p><p> public MyFileChooser(File currentDirectory, FileSystemView fsv) </p><p><b> {</b></p><p> super(currentDirectory, fsv);&
115、lt;/p><p><b> }</b></p><p> public MyFileChooser(FileSystemView fsv) </p><p><b> {</b></p><p> super(fsv);</p><p><b> }<
116、/b></p><p> public MyFileChooser(String currentDirectoryPath) </p><p><b> {</b></p><p> super(currentDirectoryPath);</p><p><b> }</b><
117、/p><p> public MyFileChooser(String currentDirectoryPath, FileSystemView fsv) </p><p><b> {</b></p><p> super(currentDirectoryPath, fsv);</p><p><b>
118、}</b></p><p> public void approveSelection()</p><p><b> {</b></p><p> if (this.getDialogType() == JFileChooser.SAVE_DIALOG)</p><p><b> {<
119、/b></p><p> File temp = this.getSelectedFile();</p><p> if (temp.exists()) </p><p><b> {</b></p><p> if (JOptionPane.showConfirmDialog(this,</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java畫圖板課程設(shè)計報告
- java畫圖板課程設(shè)計報告
- java課程設(shè)計--畫圖板設(shè)計與實現(xiàn)
- vc++課程設(shè)計報告 paint board 簡易畫圖板
- java畫圖板課程設(shè)計報告只有報告沒有完整源代碼
- java課程設(shè)計---畫圖板軟件開發(fā)和設(shè)計
- 畫圖板軟件詳細設(shè)計
- 開題報告----vc制作的畫圖板
- qt畫圖板的設(shè)計與實現(xiàn)
- qt畫圖板的設(shè)計與實現(xiàn).doc
- 簡單畫圖程序課程設(shè)計報告
- 簡單畫圖程序課程設(shè)計報告
- 簡單畫圖程序課程設(shè)計
- 簡單畫圖程序-課程設(shè)計
- 課程設(shè)計----畫圖軟件開發(fā)制作文檔
- 軟件工程課程設(shè)計-- windows繪圖板的設(shè)計與實現(xiàn)
- java課程設(shè)計----課程設(shè)計報告
- fpga課程設(shè)計課程設(shè)計報告
- 課程設(shè)計報告
- 課程設(shè)計報告
評論
0/150
提交評論