2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rè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>  (1)能用拖橡皮檫的手法繪制各類圖形(直線、橢圓、矩形、文字)</p><p>  (2)支持畫筆顏色、文字大小設(shè)置;</p><p>  (3)能將畫面中的所有圖

3、形存儲到文件中;</p><p> ?。?)能從文件讀取圖形進行增補;</p><p> ?。?)采用對話框獲取圖形文件名;</p><p> ?。?)利用鼠標(biāo)選取圖形,刪除;</p><p>  由以上設(shè)計要求可以分析出程序主要是要先使用java圖形界面編輯的方法設(shè)計出一個圖形界面,設(shè)計出的圖形界面要包含一個菜單條JMenuBar,而這個菜

4、單條又包含有幾個菜單如:MenuFile(用于文件的打開,保存,新建,另存為,退出),MenuSight(包括工具箱和狀態(tài)欄,主要用于控制工具欄和鼠標(biāo)點坐標(biāo)的顯示和隱藏),MenuColor(用于畫筆和面板背景顏色的設(shè)置),MenuHelp(給用戶提供一些通知,可有可無),其中為了方便用戶比較容易的通過MenuSight控制工具欄和狀態(tài)欄,我們將工具欄和狀態(tài)欄的菜單項用JcheckBoxMenuItem 設(shè)計,這個是可以被選定或取消選定

5、的菜單項。如果被選定,菜單項的旁邊通常會出現(xiàn)一個復(fù)選標(biāo)記。如果未被選定或被取消選定,菜單項的旁邊就沒有復(fù)選標(biāo)記。</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、詳細(xì)設(shè)計</b></p><p>  (1)程序主界面是一個窗口,在程序設(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("坐標(biāo): ");</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"); 當(dāng)這個按鈕被點擊的時候,你就可以用 ActionEvent 的 getActionCommand().equals("show") 去比較觸發(fā)事件的是不是這個按鈕</p><p>  2) setMnemonic(‘ 參數(shù)’)參數(shù)為鍵盤助記符名稱,它與外觀的無鼠標(biāo)修飾符(通常是 Alt)組合時(如果焦點被包含在此按鈕祖先窗口

106、中的某個地方)</p><p>  將激活此按鈕。 一個助記符必須對應(yīng)鍵盤上的一個鍵,并且應(yīng)該使用 java.awt.event.KeyEvent 中定義的 VK_XXX 鍵代碼之一指定。助記符是不區(qū)分大小寫的,所以具有相應(yīng)鍵代碼的鍵事件將造成按鈕被激活,不管是否按下 Shift 修飾符。 如果在按鈕的標(biāo)簽字符串中發(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è)置由此圖標(biāo)顯示的圖像。</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>  (2)保存窗口設(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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論