JLabelがクリックされたらこれに割り当てられているコンポーネントにフォーカスを移動する
Total: 4292, Today: 3, Yesterday: 4
Posted by aterai at 
Last-modified: 
Summary
JLabelがマウスでクリックされたらこのラベルに割り当てられているコンポーネントにフォーカスを移動します。
Screenshot

Advertisement
Source Code Examples
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);
View in GitHub: Java, KotlinDescription
JLabel#setLabelFor(...)メソッドでJLabelにコンポーネントを割り当てるとニーモニックがアクティブになったときそのコンポーネントにフォースが移動する- 上記のサンプルでは
JLabelにMouseListenerを追加してマウスでJLabelがクリックされた場合も同様にフォースを割り当てられたコンポーネントに移動するよう設定