差分情報適用後の実行イメージ

 

差分情報

パッチファイル (Unified diffs)

--- ReviewPaintMain.java	Mon Jun 15 22:25:00 2009
+++ ReviewPaintMain.java	Mon Jun 15 22:28:05 2009
@@ -29,7 +29,13 @@
 import javax.swing.JPanel;
 import javax.swing.JApplet;
 import javax.swing.JToolBar;
+import javax.swing.KeyStroke;
 import javax.swing.SwingConstants;
+import javax.swing.JMenuBar;
+import javax.swing.JMenu;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import javax.swing.JMenuItem;
 
 // JAppletを継承する
 public class ReviewPaintMain extends JApplet {
@@ -109,8 +115,14 @@
 
 	private CardLayout layout; // オプションパネルのレイアウト変数(カードレイアウト)
 
-	// キャンバスをクリアするボタン
-	private JButton jButtonNewCanvas = null;
+	
+	// 以降、メニューバー関連の部品
+	
+	private JMenuBar jJMenuBar = null; // メニューバー
+
+	private JMenu jMenuFile = null; // 「ファイル」メニュー
+
+	private JMenuItem jMenuItemNew = null; // 「新規」メニューアイテム
 
 	// --------------------------------------------------
 	// コンストラクタ
@@ -125,6 +137,7 @@
 	public void init() {
 		this.setSize(800, 560); // アプレットサイズ
 		this.setContentPane(getJContentPane()); // コンポーネントの読み込み
+		this.setJMenuBar(getJJMenuBar()); // メニューバー
 
 		jPanelCanvasPaper.ptool = changeMainButton(PAINT_TOOL_STATE_PENCIL); // ペイントツールのデフォルト選択の指定
 		jPanelCanvasPaper.ptool.penColor = colorPanel.getColor(); // ペン色の設定
@@ -255,9 +268,6 @@
 			jLabelCursorPosition.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); // 枠(掘り込みベベル)
 			jPanelToolLayout.add(jLabelCursorPosition);
 			jPanelToolLayout.add(getJPanelToolOption());
-			
-			// キャンバスをクリアするボタンをツールパレットに追加
-			jPanelToolLayout.add(getJButtonNewCanvas(), null);
 		}
 		return jPanelToolLayout;
 	}
@@ -430,20 +440,41 @@
 		return jPanelToolOption;
 	}
 
-	// キャンバスをクリアするボタン
-	private JButton getJButtonNewCanvas() {
-		if (jButtonNewCanvas == null) {
-			jButtonNewCanvas = new JButton();
-			jButtonNewCanvas.setText("クリア");
-			
+	// メニューバー
+	private JMenuBar getJJMenuBar() {
+		if (jJMenuBar == null) {
+			jJMenuBar = new JMenuBar();
+			jJMenuBar.add(getJMenuFile());
+		}
+		return jJMenuBar;
+	}
+
+	// 「ファイル」メニュー
+	private JMenu getJMenuFile() {
+		if (jMenuFile == null) {
+			jMenuFile = new JMenu();
+			jMenuFile.setMnemonic(KeyEvent.VK_F); // ショートカットキー
+			jMenuFile.setText("ファイル(F)");
+			jMenuFile.add(getJMenuItemNew());
+		}
+		return jMenuFile;
+	}
+
+	// 「新規」メニューアイテム
+	private JMenuItem getJMenuItemNew() {
+		if (jMenuItemNew == null) {
+			jMenuItemNew = new JMenuItem();
+			jMenuItemNew.setText("新規");
+			jMenuItemNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK)); // ショートカットキー
+
 			// ボタン押下イベント
-			jButtonNewCanvas.addActionListener(new java.awt.event.ActionListener() {
+			jMenuItemNew.addActionListener(new java.awt.event.ActionListener() {
 				public void actionPerformed(java.awt.event.ActionEvent e) {
 					// キャンバスクラスのクリアメソッドを呼び出すことによりキャンバスをクリアする
 					jPanelCanvasPaper.Clear();
 				}
 			});
 		}
-		return jButtonNewCanvas;
+		return jMenuItemNew;
 	}
 }
\ No newline at end of file

変更後のファイル

変更の種類 変更後のファイル 変更前後の比較
修正 /branches/add_menubar/ReviewPaintMain.java Side-by-side diffs
リンク先は リポジトリ上のURLです