1

「金曜日」などの週の日を表すJTextFieldがあります。クリックすると、「月の1日、月の3日、または月の最後」などの選択肢が欲しいので、思いつきました2 つのオプション:

<1> 数字または文字、たとえば「2」または「L」を押したままにしてから、「金曜日」をクリックします。これは、月の第 2 (または最後の) 金曜日を意味します。この場合、マウスをクリックしている間に数字を取得する方法JTextField ?

<2> "Friday" JTextField を右クリックし、選択可能なボタンまたはチェックボックスを含むメニューをドロップダウンし、メニューを閉じて値を取得します。

私のコードはこれまでのところ次のようになります:

  private final JTextField[] dayHeadings=new JTextField[]{new JTextField("Su"),
                                                          new JTextField("Mo"),
                                                          new JTextField("Tu"),
                                                          new JTextField("We"),
                                                          new JTextField("Th"),
                                                          new JTextField("Fr"),
                                                          new JTextField("Sa")};
......

    for (int ii=0; ii < dayHeadings.length; ii++)
    {
      dayHeadings[ii].setEditable(false);
      dayHeadings[ii].setFocusable(false);
      dayHeadings[ii].addMouseListener(new MouseAdapter() { public void mouseClicked(final MouseEvent evt) { onHeadingClicked(evt); } });
      add(dayHeadings[ii],new AbsoluteConstraints(x,38,X_Cell_Size+1,Y_Cell_Size+1));
    }
......
  void onHeadingClicked(final java.awt.event.MouseEvent evt)
  {
    final javax.swing.JTextField fld=(javax.swing.JTextField) evt.getSource();

    ...
  }

上記のいずれかを行う方法は、Javaで実行できますか?

4

3 に答える 3

2

getModifiers は実際に私が必要としていたものです。修飾子のサンプルは ここにあります

于 2013-05-07T06:05:16.377 に答える
1

オプション1:

これを 1 ステップで行う方法はありません。キーが押されるたびに追跡する KeyListner を追加し、文字値を保存する必要があります。次に、mousePressed イベントのリスナーに MouseListener を追加する必要があります。mousePressed イベントが発生したら、どの文字が保存されているかを確認してから処理を行う必要があります。したがって、リスナーは KeyListener インターフェイスと MouseListener インターフェイスの両方を実装する必要があります。

オプション 2:

マウス リスナーを追加し、マウスの右クリックをリッスンしてから、ポップアップ メニューを表示する必要があります。

オプション 2 はより直感的で簡単に実行できると思います。片手で作業する方が常に簡単で、両手を使わなければなりません。

于 2011-01-01T17:00:29.953 に答える
0

これを行うもう 1 つの怠惰な方法は、mouseclick イベントで getModifiers() を使用することです。マウス クリック中にどの修飾キー (Ctrl、Alt、Shift など) が押されたかを示します。これらのボタンの使用は、私の意見では、ドロップダウン メニューや数字ほど直感的ではありませんが、機能する可能性があります。

詳細はこちら

于 2011-01-01T18:16:26.397 に答える