Swing/LabelForRequestFocus の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/LabelForRequestFocus へ行く。
- Swing/LabelForRequestFocus の差分を削除
--- category: swing folder: LabelForRequestFocus title: JLabelがクリックされたらこれに割り当てられているコンポーネントにフォーカスを移動する tags: [JLabel, Focus, MouseListener] author: aterai pubdate: 2020-05-25T18:25:26+09:00 description: JLabelがマウスでクリックされたらこのラベルに割り当てられているコンポーネントにフォーカスを移動します。 image: https://drive.google.com/uc?id=1BInMW2eZh0dX_W7qu-ZUCa11qjYC3woq --- * 概要 [#summary] `JLabel`がマウスでクリックされたらこのラベルに割り当てられているコンポーネントにフォーカスを移動します。 #download(https://drive.google.com/uc?id=1BInMW2eZh0dX_W7qu-ZUCa11qjYC3woq) * サンプルコード [#sourcecode] #code(link){{ MouseListener focusHandler = new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { Component c = ((JLabel) e.getComponent()).getLabelFor(); if (c != null) { c.requestFocusInWindow(); } } }; JLabel label1 = new JLabel("Mail Address:", SwingConstants.RIGHT); label1.addMouseListener(focusHandler); label1.setDisplayedMnemonic('M'); Component textField1 = new JTextField(12); label1.setLabelFor(textField1); }} * 解説 [#explanation] - `JLabel#setLabelFor(...)`メソッドで`JLabel`にコンポーネントを割り当て -- ニーモニックがアクティブになるとフォースが割り当てられたコンポーネントに移動 - `JLabel#setLabelFor(...)`メソッドで`JLabel`にコンポーネントを割り当てるとニーモニックがアクティブになったときそのコンポーネントにフォースが移動する --- 参考: [[JLabelに設定したニーモニックでフォーカス移動>Swing/LabelForDisplayedMnemonic]] -- `JLabel`に`MouseListener`を設定してマウスで`JLabel`がクリックされた場合も同様にフォースを割り当てられたコンポーネントに移動 - 上記のサンプルでは`JLabel`に`MouseListener`を追加してマウスで`JLabel`がクリックされた場合も同様にフォースを割り当てられたコンポーネントに移動するよう設定 * 参考リンク [#reference] - [[JLabelに設定したニーモニックでフォーカス移動>Swing/LabelForDisplayedMnemonic]] * コメント [#comment] #comment #comment