約 5,277,016 件
https://w.atwiki.jp/boare/pages/181.html
移植作業メモ → UI部品のプロパティへのアクセスをgetter/setterに書き換える → BMenuItem extends BForm 完了日 備考 Cadencii/EditorConfig 25 Nov., 2009 Cadencii/FormMain 25 Nov., 2009 Cadencii/FormMixer 25 Nov., 2009 Cadencii/FormNoteProperty 25 Nov., 2009 Cadencii/FormShortcutKeys 25 Nov., 2009 Cadencii/TrackSelecctor 25 Nov., 2009 EditOtoIni/FormUtauVoiceConfig 26 Nov., 2009
https://w.atwiki.jp/api_programming/pages/29.html
オプションメニュー メニューボタンを押した時に上がってくるメニューExpanded Menu Icon Menu コンテキストメニュー 長押ししたりすると出てくるメニュー OptionMenu を作るOnCreateOptionMenu関数初回のみ OnPrepareOptionsMenu関数毎回。状態に応じてON/OFFしたりする場合に使う メニューのボタンを押した際の挙動を作る それぞれの関係は?OnMenuItemClickListener OnMenuItemSelected OnOptionsItemSelected MenuItemにOnMenuItemClickListenerを登録するMenuItem.setOnMenuItemClickListener(OnMenuItemClickListener); http //ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=56&page=print http //www.adakoda.com/android/000085.html http //libro.tuyano.com/index3?id=180001&page=4 OnCreateOptionMenu(Menu menu) オーバーライド 実行タイミングは、始めてメニューを開くとき 2回め以降は OnPrepareOptionMenu のみ menu.add public abstract MenuItem add (int groupId, int itemId, int order, int titleRes) itemId はあとで、OnOptionsItemSelectedで受け取れればいい? menu.add(Menu.NONE, MENU_ID_MENU1, Menu.NONE, "Menu1"); リソースでメニューを作る res/menu/menu.xmlでメニューを作る getMenuInflator()で読み込む OnOptionItemSelected(MenuItem item) item.getItemId()で、選択されたIDを取得する item.getitemId() これをswitch文などで処理をして、所望の処理を行う。 Menu | Android Developer MenuItem | Android Developer public class SampleApp extends Activity { private Activity me; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); me = this; setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuItem item1 = menu.add("Toast"); MenuItem item2 = menu.add("Alert"); OnMenuItemClickListener listener1 = new OnMenuItemClickListener(){ public boolean onMenuItemClick(MenuItem item){ Toast toast = Toast.makeText(me,"トーストです。",Toast.LENGTH_LONG); toast.show(); return false; } }; OnMenuItemClickListener listener2 = new OnMenuItemClickListener(){ public boolean onMenuItemClick(MenuItem item){ AlertDialog.Builder builder = new AlertDialog.Builder(me); builder.setMessage("アラートだよ。"); builder.show(); return false; } }; item1.setOnMenuItemClickListener(listener1); item2.setOnMenuItemClickListener(listener2); return true; } }
https://w.atwiki.jp/konngou/pages/2.html
メニュー トップページ ここを編集
https://w.atwiki.jp/www17test2/pages/11.html
setmenu1
https://w.atwiki.jp/www17test2/pages/12.html
setmenu2
https://w.atwiki.jp/qtmemo/pages/90.html
見出し 見出し QMenu クラス 継承関係 プロパティ メンバ関数コンストラクタ デストラクタ メニューを取得する メニューにサブメニューを追加する メニューにアクションを追加する 区切りを追加する メニューからアクションを削除する メニューが空かどうかを調べる このメニューのアクションを取得する メニューの列数を取得する ハイライトされたアクションを取得及び設定する メニューを実行する 保留 保留 再実装 一部のOSのみサポートされている機能デフォルトアクションを取得及び設定する NSメニューに変換する ドックメニューとして設定する シグナル スロット イベント QMenu クラス QMenu クラスはメニュー、コンテキストメニュー及び他のポップアップメニューで使用するためのメニューを提供します。 公式リファレンス 継承関係 QObject QPaintDevice ┗QWidget ┗QMenu プロパティ icon 型 … QIcon 説明このメニューのアイコンを保持します。 menuAction() の QAction icon プロパティと同じです。 デフォルトデフォルトでは、アイコンは設定されていません。Nullの QIcon オブジェクトが設定されています。 アクセサー取得 … QIcon icon() const 設定 …void setIcon(const QIcon icon) separatorsCollapsible 型 … bool 説明このプロパティがtrueの場合は、このメニューの連続する2つ以上の区切りは一つだけ表示します。 メニューの先頭及び末尾の区切りは表示しません。 デフォルトデフォルトでは、trueです。 アクセサー取得 … bool separatorsCollapsible() const 設定 …void setSeparatorsCollapsible(bool collapse) tearOffEnabled 型 … bool 説明 デフォルトデフォルトでは、falseです。 アクセサー取得 … bool isTearOffEnabled() const 設定 …void setTearOffEnabled(bool) title 型 … QString 説明このメニューのタイトルを保持します。 menuAction() の QAction text プロパティと同じです。 アクセサー取得 … QString title() const 設定 …void setTitle(const QString title) toolTipsVisible 型 … bool 説明このメニューのアクション項目にツールチップを表示するかどうかを保持します。 デフォルトデフォルトでは、falseです。 アクセサー取得 … bool toolTipsVisible() const 設定 …void setToolTipsVisible(bool visible) メンバ関数 コンストラクタ QMenu QMenu(QWidget * parent = 0) 説明指定した親を持つメニューを作成します。 パラメータparent … このメニューを所持する親ウィジェット 注意ポップアップメニューはトップレベルのウィジェットですが、親を設定した場合は、親が破棄されるとこのメニューも破棄されてしまいます。 QMenu QMenu(const QString title, QWidget * parent = 0) 説明指定した親及びタイトルを持つメニューを作成します。 パラメータtitle … このメニューのタイトル parent … このメニューを所持する親ウィジェット 注意ポップアップメニューはトップレベルのウィジェットですが、親を設定した場合は、親が破棄されるとこのメニューも破棄されてしまいます。 デストラクタ QMenu ~QMenu() 説明このメニューを破棄します。 メニューを取得する +... QAction * QMenu actionAt(const QPoint pt) const 説明このメニューの指定位置に存在するアクションを返します。 位置はメニューの左上の頂点を原点とするピクセル座標で指定します。 パラメータpt … アクションを取得する位置 パラメータ … 説明 返り値指定位置に存在するアクション 指定位置にアクションが存在しない場合か、または指定位置が区切りである場合は、Nullを返します。 例 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (QMenu_01.png) この例でいくと 0 = x 32 かつ 0 = y 17 がfile 32 = x 69 かつ 0 = y 17 がhelp それ以外はNull menuBar()- actionAt( QPoint(0, 0) ); //filemenuBar()- actionAt( QPoint(20, 10) ); //filemenuBar()- actionAt( QPoint(10, 17) ); //NullmenuBar()- actionAt( QPoint(31, 0) ); //filemenuBar()- actionAt( QPoint(32, 0) ); //helpmenuBar()- actionAt( QPoint(69,0) ); //Null QRect QMenu actionGeometry(QAction * act) const 説明指定アクションのジオメトリを返します。 パラメータact … ジオメトリを取得するアクション 返り値指定アクションのジオメトリ返り値の QRect オブジェクトの単位はピクセルです。 例 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (QMenu_01.png) menuBar()- actionGeometry( act_file ); //QRect(0,0 32x17)menuBar()- actionGeometry( act_help ); //QRect(32,0 37x17) メニューにサブメニューを追加する +... QAction * QMenu addMenu(QMenu * menu) 説明このメニューに指定メニューをサブメニューとして追加します。 パラメータmenu … 追加するサブメニュー 返り値追加した QMenu オブジェクトの menuAction() の値を返します。 QMenu * QMenu addMenu(const QString title) 説明このメニューに指定タイトルを持つメニューを新規作成して、サブメニューとして追加します。 パラメータtitle … サブメニューのタイトル 返り値追加したサブメニューを返します QMenu * QMenu addMenu(const QIcon icon, const QString title) 説明このメニューに指定したアイコン及びタイトルを持つメニューを新規作成して、サブメニューとして追加します。 パラメータ パラメータicon … サブメニューのアイコン title … サブメニューのタイトル 返り値追加したサブメニューを返します QAction * QMenu insertMenu(QAction * before, QMenu * menu) 説明指定したメニューをこのメニューの指定したアクションの前にサブメニューとして挿入します。 パラメータbefore … このアクションの前にメニューを挿入します menu … 挿入するサブメニュー 返り値挿入したサブメニューを返します メニューにアクションを追加する +... void QMenu addAction(QAction * action) 説明指定アクションをメニューの末尾に追加します。 パラメータaction … 追加するアクション QAction * QMenu addAction(const QString text) 説明指定したテキストを持つアクションを新規作成してメニューに追加します。 パラメータtext … アクションのテキスト 返り値追加したアクションを返します QAction * QMenu addAction(const QIcon icon, const QString text) 説明指定したアイコン及びテキストを持つアクションを新規作成してメニューに追加します。 パラメータicon … アクションのアイコン text … アクションのテキスト 返り値追加したアクションを返します QAction * QMenu addAction(const QString text, const QObject * receiver, const char * member, const QKeySequence shortcut = 0) 説明指定したテキスト及びショートカットを持つアクションを新規作成してメニューに追加します。 作成したアクションの triggered() シグナルは receiver オブジェクトの member スロットと接続されます。 パラメータtext … アクションのテキスト receiver … 接続先のオブジェクト member … 接続先のスロット shortcut … アクションのショートカットキー 返り値追加したアクションを返します QAction * QMenu addAction(const QIcon icon, const QString text, const QObject * receiver, const char * member, const QKeySequence shortcut = 0) 説明指定したアイコン、テキスト及びショートカットを持つアクションを新規作成してメニューに追加します。 作成したアクションの triggered() シグナルは receiver オブジェクトの member スロットと接続されます。 パラメータicon … アクションのアイコン text … アクションのテキスト receiver … 接続先のオブジェクト member … 接続先のスロット shortcut … アクションのショートカットキー 返り値追加したアクションを返します 区切りを追加する +... QAction * QMenu addSeparator() 説明区切りを新規作成して、このメニューの末尾に追加します。 返り値追加した区切り QAction * QMenu addSection(const QString text) 説明指定したテキストを持つ区切りを新規作成して、このメニューの末尾に追加します。 パラメータtext … 区切りのテキスト 返り値追加した区切り QAction * QMenu addSection(const QIcon icon, const QString text) 説明指定したアイコン及びテキストを持つ区切りを新規作成して、このメニューの末尾に追加します。 パラメータicon … 区切りのアイコン text … 区切りのテキスト 返り値追加した区切り QAction * QMenu insertSeparator(QAction * before) 説明区切りを新規作成して、このメニューの指定したアクションの前に挿入します。 パラメータbefore … このアクションの前に区切りを挿入します 返り値挿入した区切り QAction * QMenu insertSection(QAction * before, const QString text) 説明指定したテキストを持つ区切りを新規作成して、このメニューの指定したアクションの前に挿入します。 パラメータbefore … このアクションの前に区切りを挿入します text … 区切りのテキスト 返り値挿入した区切り QAction * QMenu insertSection(QAction * before, const QIcon icon, const QString text) 説明指定したテキスト及びアイコンを持つ区切りを新規作成して、このメニューの指定したアクションの前に挿入します。 パラメータbefore … このアクションの前に区切りを挿入します icon … 区切りのアイコン text … 区切りのテキスト 返り値挿入した区切り メニューからアクションを削除する void QMenu clear() 説明このメニューからすべてのアクションを削除します。 メニューが所有している他のウィジェットで表示されていないアクションを削除します。 注意MacOS Xでは注意が必要 メニューが空かどうかを調べる bool QMenu isEmpty() const 説明このメニューに表示できるアクションがひとつもない場合はtrue、そうでない場合はfalseを返します。 返り値このメニューに表示できるアクションがあるかどうか このメニューのアクションを取得する QAction * QMenu menuAction() const かんすう 説明このメニューに関連するアクションを返します。 返り値このメニューに関連するアクション メニューの列数を取得する QMenu columnCount() const [protected] 説明メニューがスクリーンに収まらない場合は、収まるようにメニューを2列にするなどして表示します。その際の列数を返します。 パラメータパラメータ … 説明 パラメータ … 説明 返り値 注意そうした場合にメニューのレイアウトをどのようにするかはプラットフォーム依存です。(Windows では複数行で表示されます) ハイライトされたアクションを取得及び設定する +... ハイライトは、アクションをマウスオーバーするとなります。 QAction * QMenu activeAction() const 説明現在ハイライトされているアクションを返します。 返り値どのアクションもハイライトされていない場合は、Nullを返します。 void QMenu setActiveAction(QAction * act) 説明指定したアクションをハイライトします。 パラメータact … ハイライトするアクション メニューを実行する +... QAction * QMenu exec() 説明このメニューを同期的に表示します。 exec(pos()) と同じです。 返り値メニューで選択されたアクションを返します。 アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど) QAction * QMenu exec(const QPoint p, QAction * action = 0) 説明このメニューを指定アクションが指定位置に現れるように同期的に表示します。 パラメータp … 指定アクションを表示する位置 action … 指定位置に表示するアクショングローバル座標で指定します。 ウィジェットのローカル座標をグローバル座標に変換するには、QWidget mapToGlobal() を使用します。 返り値メニューで選択されたアクションを返します。 アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど) 返り値以外にシグナルスロットでも選択したアクションを取得できます。 注意exec() または popup() を使用してメニューを配置した場合、メニューの現在の size() は信用できないことに注意してください。 パフォーマンス上の理由で、メニューは必要な場合のみメニューに設定されているサイズを適用できます。多くの場合、大きさは異なっています。 代わりに、メニューの現在のコンテンツに依存する適切な大きさを計算するのに sizeHint() を使用できます。 QAction * QMenu exec(QList QAction * actions, const QPoint pos, QAction * at = 0, QWidget * parent = 0) [static] 説明指定したアクションより構成されるメニューを同期的に表示します。 指定アクションが指定位置に現れるよう表示します。 パラメータactions … メニューに表示するアクション pos … 表示位置 at … pos で指定した位置にこのアクションが現れるよう表示します指定しなかった場合は、pos で指定した位置にメニューを表示します。 parent … 表示するメニューの親ウィジェットpos 単独でメニューをどこへ表示するかを決めるのに不十分である場合、追加情報になります。(例 デュアルモニタ環境 または 親が QGraphicsView に埋め込まれている場合など) 返り値メニューで選択されたアクションを返します。 アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど) 返り値以外にシグナルスロットでも選択したアクションを取得できます。 注意exec() または popup() を使用してメニューを配置した場合、メニューの現在の size() は信用できないことに注意してください。 パフォーマンス上の理由で、メニューは必要な場合のみメニューに設定されているサイズを適用できます。多くの場合、大きさは異なっています。 代わりに、メニューの現在のコンテンツに依存する適切な大きさを計算するのに sizeHint() を使用できます。 void QMenu popup(const QPoint p, QAction * atAction = 0) 説明このメニューを指定アクションが指定位置に現れるように同期的に表示します。 パラメータp … 指定アクションを表示する位置 action … 指定位置に表示するアクショングローバル座標で指定します。 ウィジェットのローカル座標をグローバル座標に変換するには、QWidget mapToGlobal() を使用します。 返り値メニューで選択されたアクションを返します。 アクションが選択されなかった場合はNullを返します。(ユーザーがEscキーを押すなど) 返り値以外にシグナルスロットでも選択したアクションを取得できます。 注意exec() または popup() を使用してメニューを配置した場合、メニューの現在の size() は信用できないことに注意してください。 パフォーマンス上の理由で、メニューは必要な場合のみメニューに設定されているサイズを適用できます。多くの場合、大きさは異なっています。 代わりに、メニューの現在のコンテンツに依存する適切な大きさを計算するのに sizeHint() を使用できます。 保留 void QMenu hideTearOffMenu() 説明ユーザーのデスクトップからはみ出したメニューを強制的に隠します。 bool QMenu isTearOffMenuVisible() const 説明メニューがちぎれた場合は2つ目のメニューをメニューの項目を新しいウィンドウに表示するために表示します。 メニューがこのモードであり、表示できる場合はtrue、そうでない場合はfalseを返します。 保留 void QMenu initStyleOption(QStyleOptionMenuItem * option, const QAction * action) const [protected] 説明保留 パラメータoption … 説明 action … 説明 注意保留 再実装 QSize QMenu sizeHint() const [virtual] 説明QWidget sizeHint() の再実装です。 bool QMenu focusNextPrevChild(bool next) [virtual protected] 説明QWidget focusNextPrevChild() の再実装です。 一部のOSのみサポートされている機能 デフォルトアクションを取得及び設定する +... 現在Windows Mobileでのみデフォルトアクションがサポートされています。 他のプラットフォームではこの関数は利用できません。 QAction * QMenu defaultAction() const 説明現在のデフォルトアクションを返します。 返り値現在のデフォルトアクション void QMenu setDefaultAction(QAction * act) 説明指定アクションをデフォルトアクションに設定します。 パラメータact … デフォルトアクションに設定するアクション NSメニューに変換する MacOS Xでのみ利用できます。 NSMenu * QMenu toNSMenu() 説明このメニューをNSメニューに変換して返します。 返り値NSメニュー ドックメニューとして設定する MacOS Xでのみ利用できます。 void QMenu setAsDockMenu() このメニューをドックメニューに設定します。 ドックメニューとはアプリケーションのドックアイコンをクリックすることで利用できるメニューです。 シグナル void QMenu aboutToHide() [signal] 説明メニューがユーザーから隠される前に送出されます。 void QMenu aboutToShow() [signal] 説明メニューがユーザーから見えるよう表示される前に送出されます。 void QMenu hovered(QAction * action) [signal] 説明このメニューのアクションにマウスオーバーした際に送出されます。 パラメータaction … マウスオーバーされたアクション void QMenu triggered(QAction * action) [signal] 説明このメニューにあるメニューのアクションがマウスでクリックされた際に送出されます。 パラメータaction … クリックされたアクション 注意通常はメニューのアクションごとの QAction triggered() シグナルをそれぞれの動作に対応したスロットに接続します。 このシグナルはこのメニューのメニューにあるすべてのアクションを一つのスロットにまとめて接続したい場合などに便利です。 スロット void QMenu setVisible(bool visible) [virtual slot] 説明QWidget setVisible() の再実装です。 イベント void QMenu timerEvent(QTimerEvent * e) [virtual protected] 説明QObject timerEvent() の再実装です。 void QMenu changeEvent(QEvent * e) [virtual protected] 説明QWidget changeEvent() の再実装です。 bool QMenu event(QEvent * e) [virtual protected] 説明QObject event() の再実装です。 void QMenu keyPressEvent(QKeyEvent * e) [virtual protected] 説明QWidget keyPressEvent() の再実装です。 void QMenu mouseMoveEvent(QMouseEvent * e) [virtual protected] 説明QWidget mouseMoveEvent() の再実装です。 void QMenu mousePressEvent(QMouseEvent * e) [virtual protected] 説明QWidget mousePressEvent() の再実装です。 void QMenu mouseReleaseEvent(QMouseEvent * e) [virtual protected] 説明QWidget mouseReleaseEvent() の再実装です。 void QMenu leaveEvent(QEvent *) [virtual protected] 説明QWidget leaveEvent() の再実装です。 QSize QMenu minimumSizeHint() const [virtual] 説明QWidget minimumSizeHint() の再実装です。 void QMenu actionEvent(QActionEvent * e) [virtual protected] 説明QWidget actionEvent() の再実装です。 void QMenu paintEvent(QPaintEvent * e) [virtual protected] 説明QWidget paintEvent() の再実装です。 void QMenu resizeEvent(QResizeEvent *) [virtual protected] 説明QWidget resizeEvent() の再実装です。 void QMenu focusInEvent(QFocusEvent *) [virtual protected] 説明QWidget focusInEvent() の再実装です。 void QMenu focusOutEvent(QFocusEvent *) [virtual protected] 説明QWidget focusOutEvent() の再実装です。 void QMenu wheelEvent(QWheelEvent * e) [virtual protected] 説明QWidget wheelEvent() の再実装です。 void QMenu hideEvent(QHideEvent *) [virtual protected] 説明QWidget hideEvent() の再実装です。
https://w.atwiki.jp/dotcom/pages/99.html
こんなかんじ。参考サイトさんのURLがみつかりません。。どうしよう。 見つかり次第追記しますです。 script language="JavaScript" !-- menuItem = [["りんご","みかん","いちご",],["きゃべつ","はくさい","たまねぎ",],["あじ","さんま","ほっけ",],]; function setMenuItem(n,codeb) { len = document.forms["mainform"].elements[codeb].options.length; for (i=len-1; i =0; i--) { document.forms["mainform"].elements[codeb].options[i] = null; } for (i=0; i menuItem[n].length; i++) { document.forms["mainform"].elements[codeb].options[i] = new Option(menuItem[n][i],menuItem[n][i]); } } // -- /script form name="mainform" onsubmit = "return check()" select name="CodeA" onChange="setMenuItem(this.selectedIndex, CodeB )" option selected="" くだもの /option option selected="" やさい /option option selected="" さかな /option /select select name="CodeB" style="width 150px;" option /option /select /form
https://w.atwiki.jp/qtmemo/pages/89.html
見出し 見出し QMenuBar クラス 継承関係 プロパティ メンバ関数コンストラクタ デストラクタ メニューを取得する メニューバーにメニューを追加する メニューバーにアクションを追加する 区切りを追加する メニューバーからアクションを削除する 再実装 ハイライトされたアクションを取得及び設定する 保留 ウィジェットをメニューバーに追加する 一部のOSのみサポートされている機能デフォルトアクションを取得及び設定する NSメニューに変換する シグナル スロット イベント QMenuBar クラス QMenuBar クラスは水平方向のメニューバーを提供します。 公式リファレンス 継承関係 QObject QPaintDevice ┗QWidget ┗QMenuBar プロパティ defaultUp 型 … bool 説明ポップアップする方向を保持するプロパティです。 この設定をtrueにした場合は、メニューは上方向にポップアップします。 メニューがスクリーンに収まらない場合は、メニューは他の方向に自動的にポップアップします。 デフォルトデフォルトでは、メニューは下方向にポップアップします。 アクセサー取得 … bool isDefaultUp() const 設定 … void setDefaultUp(bool) nativeMenuBar 型 … bool 説明メニューバーをサポートしているプラットフォームにおいて、ネイティブのメニューバーを使用するかどうかを保持するプロパティです。 現在サポートされているプラットフォームはMacOS X及びWindows CEです。 これらのプラットフォームでこのプロパティがtrueの場合は、メニューバーはネイティブのメニューバーが使用されます。またメニューバーはその親ウィンドウ内には配置されません。 falseの場合は、メニューバーはウィンドウ内に配置されます。他のプラットフォームでこのプロパティを設定しても、効果はありません。 デフォルトデフォルトでは、このアプリケーションに Qt AA_DontUseNativeMenuBar 属性が設定されているかどうかに従います。 明示的にこのプロパティを設定した場合はこの属性の存在は上書きされます。 アクセサー取得 … bool isNativeMenuBar() const 設定 … void setNativeMenuBar(bool nativeMenuBar) メンバ関数 コンストラクタ QMenuBar QMenuBar(QWidget * parent = 0) 説明指定した親を持つメニューバーを作成します。 パラメータparent … このメニューバーを所持する親ウィジェット デストラクタ QMenuBar ~QMenuBar() 説明このメニューバーを破棄します。 メニューを取得する +... QAction * QMenuBar actionAt(const QPoint pt) const 説明このメニューバーの指定位置に存在するアクションを返します。 位置はメニューバーを左上の頂点を原点とするピクセル座標で指定します。 パラメータpt … アクションを取得する位置 パラメータ … 説明 返り値指定位置に存在するアクション 指定位置にアクションが存在しない場合か、または指定位置が区切りである場合は、Nullを返します。 例 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (QMenu_01.png) この例でいくと 0 = x 32 かつ 0 = y 17 がfile 32 = x 69 かつ 0 = y 17 がhelp それ以外はNull menuBar()- actionAt( QPoint(0, 0) ); //filemenuBar()- actionAt( QPoint(20, 10) ); //filemenuBar()- actionAt( QPoint(10, 17) ); //NullmenuBar()- actionAt( QPoint(31, 0) ); //filemenuBar()- actionAt( QPoint(32, 0) ); //helpmenuBar()- actionAt( QPoint(69,0) ); //Null QWidget * QMenuBar cornerWidget(Qt Corner corner = Qt TopRightCorner) const 説明指定位置のメニューを取得します。 パラメータcorner … メニューを取得する位置Qt TopLeftCorner を指定した場合は、メニューバーの左端にあるメニューを取得します。 Qt TopRightCorner を指定した場合は、メニューバーの右端にあるメニューを取得します。 Qt TopRightCorner または Qt TopLeftCorner 以外の値を指定した場合は、エラーになります。 返り値指定位置のメニュー QRect QMenuBar actionGeometry(QAction * act) const 説明指定アクションのジオメトリを返します。 パラメータact … ジオメトリを取得するアクション 返り値指定アクションのジオメトリ返り値の QRect オブジェクトの単位はピクセルです。 例 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (QMenu_01.png) menuBar()- actionGeometry( act_file ); //QRect(0,0 32x17)menuBar()- actionGeometry( act_help ); //QRect(32,0 37x17) メニューバーにメニューを追加する +... QAction * QMenuBar addMenu(QMenu * menu) 説明指定したメニューをこのメニューバーの末尾に追加します。 パラメータmenu … 追加するメニュー 返り値追加した QMenu オブジェクトの menuAction() の値を返します。 QMenu * QMenuBar addMenu(const QString title) 説明指定したアイコン及びタイトルを持つ新しくメニューをこのメニューバーの末尾に追加します。 パラメータtitle … メニューのタイトル 返り値追加したメニューを返します QMenu * QMenuBar addMenu(const QIcon icon, const QString title) 説明指定タイトルを持つ新しいメニューをこのメニューバーの末尾に追加します。 パラメータicon … メニューのアイコン title … メニューのタイトル 返り値追加したメニューを返します QAction * QMenuBar insertMenu(QAction * before, QMenu * menu) 説明指定したメニューをこのメニューバーの指定したアクションの前に挿入します。 パラメータbefore … このアクションの前にメニューを挿入します menu … 挿入するメニュー 返り値挿入したメニューを返します メニューバーにアクションを追加する +... void QMenuBar addAction(QAction * action) 説明指定アクションをメニューバーの末尾に追加します。 パラメータaction … 追加するアクション QAction * QMenuBar addAction(const QString text) 説明指定したテキストを持つアクションを新規作成してメニューバーに追加します。 パラメータtext … アクションのテキスト 返り値追加したアクションを返します QAction * QMenuBar addAction(const QString text, const QObject * receiver, const char * member) 説明指定したテキストを持つアクションを新規作成してメニューバーに追加します。 作成したアクションの triggered() シグナルは receiver オブジェクトの member スロットと接続されます。 パラメータtext … アクションのテキスト receiver … 接続先のオブジェクト member … 接続先のスロット 返り値追加したアクションを返します 区切りを追加する +... QAction * QMenuBar addSeparator() 説明このメニューバーの末尾に区切りを追加します。 返り値追加した区切り QAction * QMenuBar insertSeparator(QAction * before) 説明区切りをこのメニューバーの指定したアクションの前に挿入します。 パラメータbefore … このアクションの前に区切りを挿入します 返り値挿入した区切り メニューバーからアクションを削除する void QMenuBar clear() 説明このメニューバーからすべてのアクションを削除します。 注意MacOS Xでは注意が必要 再実装 +... bool QMenuBar eventFilter(QObject * object, QEvent * event) [virtual protected] 説明QObject eventFilter() の再実装です。 QSize QMenuBar sizeHint() const [virtual] 説明QWidget sizeHint() の再実装です。 int QMenuBar heightForWidth(int) const [virtual] 説明QWidget heightForWidth() の再実装です。 ハイライトされたアクションを取得及び設定する +... ハイライトは、アクションをマウスオーバーするとなります。 QAction * QMenuBar activeAction() const 説明現在ハイライトされているアクションを返します。 返り値どのアクションもハイライトされていない場合は、Nullを返します。 void QMenuBar setActiveAction(QAction * act) 説明指定したアクションをハイライトします。 パラメータact … ハイライトするアクション 保留 void QMenuBar initStyleOption(QStyleOptionMenuItem * option, const QAction * action) const [protected] 説明保留 パラメータoption … 説明 action … 説明 注意保留 ウィジェットをメニューバーに追加する void QMenuBar setCornerWidget(QWidget * widget, Qt Corner corner = Qt TopRightCorner) 説明指定したウィジェットをこのメニューバーの指定位置に追加します。 パラメータwidget … 追加するウィジェット corner … メニューを取得する位置Qt TopLeftCorner を指定した場合は、メニューバーの左端にあるメニューを取得します。 Qt TopRightCorner を指定した場合は、メニューバーの右端にあるメニューを取得します。 Qt TopRightCorner または Qt TopLeftCorner 以外の値を指定した場合は、エラーになります。 一部のOSのみサポートされている機能 デフォルトアクションを取得及び設定する +... 現在Windows Mobileでのみデフォルトアクションがサポートされています。 他のプラットフォームではこの関数は利用できません。 QAction * QMenuBar defaultAction() const 説明現在のデフォルトアクションを返します。 返り値現在のデフォルトアクション void QMenuBar setDefaultAction(QAction * act) 説明指定アクションをデフォルトアクションに設定します。 パラメータact … デフォルトアクションに設定するアクション NSメニューに変換する MacOS Xでのみ利用できます。 NSMenu * QMenuBar toNSMenu() 説明このメニューをNSメニューに変換して返します。 返り値NSメニュー シグナル void QMenuBar hovered(QAction * action) [signal] 説明このメニューバーのアクションにマウスオーバーした際に送出されます。 パラメータaction … マウスオーバーされたアクション void QMenuBar triggered(QAction * action) [signal] 説明このメニューバーにあるメニューのアクションがマウスでクリックされた際に送出されます。 パラメータaction … クリックされたアクション 注意通常はメニューのアクションごとの QAction triggered() シグナルをそれぞれの動作に対応したスロットに接続します。 このシグナルはこのメニューバーのメニューにあるすべてのアクションを一つのスロットにまとめて接続したい場合などに便利です。 スロット void QMenuBar setVisible(bool visible) [virtual slot] 説明QWidget setVisible() の再実装です。 イベント void QMenuBar timerEvent(QTimerEvent * e) [virtual protected] 説明QObject timerEvent() の再実装です。 void QMenuBar keyPressEvent(QKeyEvent * e) [virtual protected] 説明QWidget keyPressEvent() の再実装です。 void QMenuBar leaveEvent(QEvent *) [virtual protected] 説明QWidget leaveEvent() の再実装です。 QSize QMenuBar minimumSizeHint() const [virtual] 説明QWidget minimumSizeHint() の再実装です。 void QMenuBar mouseMoveEvent(QMouseEvent * e) [virtual protected] 説明QWidget mouseMoveEvent() の再実装です。 void QMenuBar mousePressEvent(QMouseEvent * e) [virtual protected] 説明QWidget mousePressEvent() の再実装です。 void QMenuBar actionEvent(QActionEvent * e) [virtual protected] 説明QWidget actionEvent() の再実装です。 void QMenuBar mouseReleaseEvent(QMouseEvent * e) [virtual protected] 説明QWidget mouseReleaseEvent() の再実装です。 void QMenuBar paintEvent(QPaintEvent * e) [virtual protected] 説明QWidget paintEvent() の再実装です。 void QMenuBar resizeEvent(QResizeEvent *) [virtual protected] 説明QWidget resizeEvent() の再実装です。 void QMenuBar focusInEvent(QFocusEvent *) [virtual protected] 説明QWidget focusInEvent() の再実装です。 void QMenuBar focusOutEvent(QFocusEvent *) [virtual protected] 説明QWidget focusOutEvent() の再実装です。 void QMenuBar changeEvent(QEvent * e) [virtual protected] 説明QWidget changeEvent() の再実装です。 bool QMenuBar event(QEvent * e) [virtual protected] 説明QObject event() の再実装です。
https://w.atwiki.jp/qtmemo/pages/83.html
見出し 見出し QMainWindow クラス - メニューバー Qtにおけるメニューバー 継承関係 関連するメソッドQt標準のメニューバーを使用する 自作のメニューバーを使用する QMainWindow クラス - メニューバー QMainWindow クラスのメニューバー関係の機能を紹介しています。 公式リファレンス Qtにおけるメニューバー メニューバーは QMenuBar クラス、メニューは QMenu クラス、メニューの項目は QActions クラスでそれぞれ実装されています。 QMainWindow の QMenuBar オブジェクト ┣メニュー1 QMenu オブジェクト ┃┣項目1 QActions オブジェクト ┃┣項目2 QActions オブジェクト ┃┗項目3 QActions オブジェクト ┣メニュー2 ┃┣項目1 QActions オブジェクト … 継承関係 QObject QPaintDevice ┗QWidget ┣QMainWindow ┣QMenuBar ┣QMenu ┗QAction ┗QWidgetAction 関連するメソッド Qt標準のメニューバーを使用する QMenuBar * QMainWindow menuBar() const このメインウィンドウのメニューバーを返します。メインウィンドウにメニューバーがまだ設定されていない場合は、空のメニューバーを生成して返します。 void QMainWindow setMenuBar(QMenuBar * menuBar) このメインウィンドウののメニューバーに指定したメニューバーを設定します。 パラメータ menuBar メインウィンドウに設定するメニューバー ポインタについて 設定されたメニューバーの所有権は QMainWindow に移ります。 自作のメニューバーを使用する QWidget * QMainWindow menuWidget() const このメインウィンドウのメニューバーを返します。メインウィンドウにメニューバーがまだ設定されていない場合は、Nullを返します。 void QMainWindow setMenuWidget(QWidget * menuBar) このメインウィンドウのメニューバーに指定したメニューバーを設定します。 パラメータ menuBar メインウィンドウに設定するメニューバー ポインタについて 設定されたメニューバーの所有権は QMainWindow に移ります。 Macの場合 If you want all windows in a Mac application to share one menu bar, don t use this function to create it, because the menu bar created here will have this QMainWindow as its parent. Instead, you must create a menu bar that does not have a parent, which you can then share among all the Mac windows. Create a parent-less menu bar this way
https://w.atwiki.jp/javamock/pages/43.html
テキストエディタソースver1.2 テキストエディタソースver1.2Main.java TextEditor.java TextEditorModel.java Constants.java TextAreaProperties.java Logic.java LogicImpl.java ActionLogic.java ActionLogicImpl.java Main.java /** * * メインクラスです。 * @author mock * @version 1.2 * */ public class Main { /** * メインメソッドです * @param args */ public static void main(String[] args) { new TextEditor(); } } TextEditor.java import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JTextArea; /** * テキストエディタクラスです * * @author mock */ public class TextEditor extends JFrame implements ActionListener { /** serialVersionUID */ private static final long serialVersionUID = 1L; /** テキストエリア */ public JTextArea textArea; /** ファイル選択 */ public JFileChooser fileChooser = new JFileChooser(); /** logic */ public Logic logic = new LogicImpl(); /** actionLogic */ public ActionLogic actionLogic = new ActionLogicImpl(); /** * コンストラクタ * * @throws HeadlessException */ public TextEditor() throws HeadlessException { TextAreaProperties textAreaProperties = logic.getInitProperties(); setTitle(Constants.UNDIFINED_TITLE); logic.createMenuBar(getRootPane(), this); textArea = logic.createTextArea(textAreaProperties, this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); pack(); } /* * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ @Override public void actionPerformed(ActionEvent actionEvent) { String actionCommand = actionEvent.getActionCommand(); TextEditorModel model = new TextEditorModel(); model.setFrame(this); model.setTextArea(textArea); model.setFileChooser(fileChooser); if (actionCommand.equals(Constants.MenuItem.NEW.toString())) { fileChooser = actionLogic.newFile(model); } else if (actionCommand.equals(Constants.MenuItem.OPEN.toString())) { actionLogic.openFile(model); } else if (actionCommand.equals(Constants.MenuItem.SAVE.toString())) { actionLogic.save(model); } else if (actionCommand.equals(Constants.MenuItem.SAVE_AS.toString())) { actionLogic.saveAs(model); } else if (actionCommand.equals(Constants.MenuItem.VERSION.toString())) { actionLogic.showVersionInfo(model); } } } TextEditorModel.java import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JTextArea; /** * テキストエディタに関するモデルです * @author mock * */ public class TextEditorModel { /** フレーム */ private JFrame frame; /** ファイルチューザ */ private JFileChooser fileChooser; /** テキストエリア */ private JTextArea textArea; /** * @return the frame */ public JFrame getFrame() { return frame; } /** * @param frame the frame to set */ public void setFrame(JFrame frame) { this.frame = frame; } /** * @return the fileChooser */ public JFileChooser getFileChooser() { return fileChooser; } /** * @param fileChooser the fileChooser to set */ public void setFileChooser(JFileChooser fileChooser) { this.fileChooser = fileChooser; } /** * @return the textArea */ public JTextArea getTextArea() { return textArea; } /** * @param textArea the textArea to set */ public void setTextArea(JTextArea textArea) { this.textArea = textArea; } } Constants.java import java.awt.event.KeyEvent; /** * 定数を集めたクラスです。 * * @author mock * */ public class Constants { /** 新規のタイトル名 */ public static final String UNDIFINED_TITLE = "UNDIFINED_TITLE"; /** バージョン */ public static final String VERSION = "ver1.2"; /** バージョン情報タイトル */ public static final String VERSION_TITLE = "VERSION"; /** ファイル(F)メニューラベル */ public static final String MENU_FILE_LABEL = "ファイル(F)"; /** ヘルプ(H)メニューラベル */ public static final String MENU_HELP_LABEL = "ヘルプ(H)"; public static final String INI_FILE_NAME = "texteditor.ini"; /** * メニュー項目に関する定数 * * @author mock * */ public enum MenuItem { NEW("新規(N)", KeyEvent.VK_N), OPEN("開く(O)", KeyEvent.VK_O), SAVE("上書き保存(S)", KeyEvent.VK_S), SAVE_AS("名前を付けて保存(A)", KeyEvent.VK_A), VERSION("バージョン情報(A)", KeyEvent.VK_A), ; /** メニュー項目ラベル */ private String label; /** メニュー項目ニーモニック */ private int mnemonic; /** * @param label * メニュー項目ラベル * @param mnemonic * メニュー項目ニーモニック */ MenuItem(String label, int mnemonic) { this.label = label; this.mnemonic = mnemonic; } /** * @return メニュー項目ラベル */ public final String getLabel() { return this.label; } /** * @return メニュー項目ニーモニック */ public final int getMnemonic() { return this.mnemonic; } } } TextAreaProperties.java /** * テキストエリアに関するプロパティクラスです * @author mock */ public class TextAreaProperties { /** 幅 */ private int width; /** 高さ */ private int height; /** タブサイズ */ private int tabSize; /** フォントサイズ */ private int fontSize; /** * @return the width */ public int getWidth() { return width; } /** * @param width the width to set */ public void setWidth(int width) { this.width = width; } /** * @return the height */ public int getHeight() { return height; } /** * @param height the height to set */ public void setHeight(int height) { this.height = height; } /** * @return the tabSize */ public int getTabSize() { return tabSize; } /** * @param tabSize the tabSize to set */ public void setTabSize(int tabSize) { this.tabSize = tabSize; } /** * @return the fontSize */ public int getFontSize() { return fontSize; } /** * @param fontSize the fontSize to set */ public void setFontSize(int fontSize) { this.fontSize = fontSize; } } Logic.java import java.awt.event.ActionListener; import java.io.File; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JRootPane; import javax.swing.JTextArea; /** * テキストエディタに関するロジックのインターフェースです * * @author mock */ public interface Logic { /** * 初期設定プロパティを取得します * * @return テキストエリアに関するプロパティ */ public TextAreaProperties getInitProperties(); /** * メニューバーを作成します * * @param rootPane * コンテナ * @param actionListener * アクションリスナー */ public void createMenuBar(JRootPane rootPane, ActionListener actionListener); /** * メニュー項目を設定します * * @param item * メニュー項目 * @param actionListener * アクションリスナー * @return メニュー項目 */ public JMenuItem setMenuItem(Constants.MenuItem item, ActionListener actionListener); /** * テキストエリアを作成します * * @param properties * テキストエリアに関するプロパティ * @param frame * フレーム * @return テキストエリア */ public JTextArea createTextArea(TextAreaProperties properties, JFrame frame); /** * ファイルにテキスト内容を書き込みます * * @param file * ファイル * @param text * テキスト内容 * @return 処理結果 */ public boolean writeFile(File file, String text); } LogicImpl.java import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRootPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * テキストエディタに関するロジックの実装クラスです * * @author mock */ public class LogicImpl implements Logic { /* * @see Logic#getInitProperties() */ @Override public TextAreaProperties getInitProperties() { TextAreaProperties textAreaProperties = new TextAreaProperties(); try { Properties properties = new Properties(); properties.load(new FileInputStream(Constants.INI_FILE_NAME)); // 幅の設定 String width = properties.getProperty("textAreaWidth"); textAreaProperties.setWidth(Integer.parseInt(width)); // 高さの設定 String height = properties.getProperty("textAreaHeight"); textAreaProperties.setHeight(Integer.parseInt(height)); // タブサイズの設定 String tabSize = properties.getProperty("tabSize"); textAreaProperties.setTabSize(Integer.parseInt(tabSize)); // フォントサイズの設定 String fontSize = properties.getProperty("fontSize"); textAreaProperties.setFontSize(Integer.parseInt(fontSize)); } catch (IOException e) { e.printStackTrace(); } return textAreaProperties; } /* * @see Logic#createMenuBar(javax.swing.JRootPane, * java.awt.event.ActionListener) */ @Override public void createMenuBar(JRootPane rootPane, ActionListener actionListener) { JMenuBar menuBar = new JMenuBar(); rootPane.setJMenuBar(menuBar); // ファイル(F) JMenu menuFile = new JMenu(Constants.MENU_FILE_LABEL); menuFile.setMnemonic(KeyEvent.VK_F); menuBar.add(menuFile); // ファイル(F)>新規(N) JMenuItem menuItemNew = setMenuItem(Constants.MenuItem.NEW, actionListener); menuFile.add(menuItemNew); // ファイル(F)>開く(O) JMenuItem menuItemOpen = setMenuItem(Constants.MenuItem.OPEN, actionListener); menuFile.add(menuItemOpen); // ファイル(F)>上書き保存(S) JMenuItem menuItemSave = setMenuItem(Constants.MenuItem.SAVE, actionListener); menuFile.add(menuItemSave); // ファイル(F)>名前を付けて保存(A) JMenuItem menuItemSaveAs = setMenuItem(Constants.MenuItem.SAVE_AS, actionListener); menuFile.add(menuItemSaveAs); // ヘルプ(H) JMenu menuHelp = new JMenu(Constants.MENU_HELP_LABEL); menuHelp.setMnemonic(KeyEvent.VK_H); menuBar.add(menuHelp); // ヘルプ(H)>バージョン情報(A) JMenuItem menuItemVersion = setMenuItem(Constants.MenuItem.VERSION, actionListener); menuHelp.add(menuItemVersion); } /* * @see Logic#setMenuItem(Constants.MenuItem, java.awt.event.ActionListener) */ @Override public JMenuItem setMenuItem(Constants.MenuItem item, ActionListener actionListener) { JMenuItem menuItem = new JMenuItem(item.getLabel()); menuItem.setMnemonic(item.getMnemonic()); menuItem.setActionCommand(item.toString()); menuItem.addActionListener(actionListener); return menuItem; } /* * @see Logic#createTextArea(TextAreaProperties, javax.swing.JFrame) */ @Override public JTextArea createTextArea(TextAreaProperties properties, JFrame frame) { JTextArea textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); scrollPane.setPreferredSize(new Dimension(properties.getWidth(), properties.getHeight())); frame.getContentPane().add(scrollPane); textArea.setBackground(Color.BLACK); textArea.setForeground(Color.WHITE); textArea.setSelectionColor(Color.BLUE); textArea.setSelectedTextColor(Color.PINK); textArea.setFont(new Font(Font.MONOSPACED, Font.PLAIN, properties .getFontSize())); textArea.setTabSize(properties.getTabSize()); textArea.setCaretColor(Color.WHITE); textArea.setLineWrap(true); textArea.grabFocus(); return textArea; } /* * @see Logic#writeFile(java.io.File, java.lang.String) */ @Override public boolean writeFile(File file, String text) { try { FileWriter fileWriter = new FileWriter(file); fileWriter.write(text); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } return true; } } ActionLogic.java import javax.swing.JFileChooser; /** * アクションに関するロジックのインターフェースです * @author mock * */ public interface ActionLogic { /** * 新規ファイルを開きます * @param model テキストエディタに関するモデル * @return JFileChooser */ public JFileChooser newFile(TextEditorModel model); /** * ファイルを開きます * @param model テキストエディタに関するモデル */ public void openFile(TextEditorModel model); /** * ファイルに上書き保存します * @param model テキストエディタに関するモデル */ public void save(TextEditorModel model); /** * ファイルに名前を付けて保存します * @param model テキストエディタに関するモデル */ public void saveAs(TextEditorModel model); /** * バージョン情報ダイアログを表示します * @param model テキストエディタに関するモデル */ public void showVersionInfo(TextEditorModel model); } ActionLogicImpl.java import java.io.File; import java.io.FileReader; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextArea; /** * アクションに関するロジックの実装クラスです * @author mock * */ public class ActionLogicImpl implements ActionLogic { /** logic */ public Logic logic = new LogicImpl(); /* * @see ActionLogic#newFile(TextEditorModel) */ @Override public JFileChooser newFile(TextEditorModel model) { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); frame.setTitle(Constants.UNDIFINED_TITLE); textArea.setText(""); return new JFileChooser(); } /* * @see ActionLogic#openFile(TextEditorModel) */ @Override public void openFile(TextEditorModel model) { try { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); if (fileChooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); FileReader fileReader = new FileReader(selectedFile); textArea.read(fileReader, null); fileReader.close(); frame.setTitle(fileChooser.getName(selectedFile)); } } catch (IOException e) { e.printStackTrace(); } } /* * @see ActionLogic#save(TextEditorModel) */ @Override public void save(TextEditorModel model) { JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); // ファイルが既に開かれている場合 if (fileChooser.getSelectedFile() != null) { logic.writeFile(fileChooser.getSelectedFile(), textArea.getText()); return; } saveAs(model); } /* * @see ActionLogic#saveAs(TextEditorModel) */ @Override public void saveAs(TextEditorModel model) { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); // ファイルダイアログ「保存」が選択された場合 if (fileChooser.showSaveDialog(frame) == JFileChooser.APPROVE_OPTION) { logic.writeFile(fileChooser.getSelectedFile(), textArea.getText()); File selectedFile = fileChooser.getSelectedFile(); frame.setTitle(fileChooser.getName(selectedFile)); } } /* * @see ActionLogic#showVersionInfo(TextEditorModel) */ @Override public void showVersionInfo(TextEditorModel model) { JFrame frame = model.getFrame(); JOptionPane.showMessageDialog(frame, Constants.VERSION, Constants.VERSION_TITLE, JOptionPane.INFORMATION_MESSAGE); } }