[解決済み] getSource()とgetActionCommand()
2022-02-04 20:24:10
質問
getSourceとは何ですか?また、何を返すのですか?
getActionCommand() とは何か、何を返すのか?
私はこれらの2つの間で混乱している誰か私にそれらを与えるか、または区別することができますか? UIのgetSourceとgetActionCommand()の用途は何ですか?特にTextFieldまたはJTextField?
どのように解決するのですか?
について話していると仮定すると
ActionEvent
クラスの場合、この2つのメソッドには大きな違いがあります。
getActionCommand()
は、アクションコマンドを表す文字列を与えます。この値はコンポーネントによって異なります。
JButton
で値を設定するオプションがあります。
setActionCommand(String command)
しかし
JTextField
を設定しないと、自動的にテキストフィールドの値が入力されます。javadoc によると、これは
java.awt.TextField
.
getSource()
が指定されています。
EventObject
というクラスがあります。
ActionEvent
の子である (via.
java.awt.AWTEvent
). これにより、そのイベントが発生したオブジェクトへの参照が得られます。
編集する
以下はその例です。2つのフィールドがあり、一方にはアクションコマンドが明示的に設定され、もう一方には設定されていません。それぞれにテキストを入力し、Enterキーを押してください。
public class Events implements ActionListener {
private static JFrame frame;
public static void main(String[] args) {
frame = new JFrame("JTextField events");
frame.getContentPane().setLayout(new FlowLayout());
JTextField field1 = new JTextField(10);
field1.addActionListener(new Events());
frame.getContentPane().add(new JLabel("Field with no action command set"));
frame.getContentPane().add(field1);
JTextField field2 = new JTextField(10);
field2.addActionListener(new Events());
field2.setActionCommand("my action command");
frame.getContentPane().add(new JLabel("Field with an action command set"));
frame.getContentPane().add(field2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(220, 150);
frame.setResizable(false);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent evt) {
String cmd = evt.getActionCommand();
JOptionPane.showMessageDialog(frame, "Command: " + cmd);
}
}
関連
-
[解決済み] テスト
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] 静的メソッドを使用する場合
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】サーブレットはどのように動作するのですか?インスタンス化、セッション、共有変数とマルチスレッド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】メソッド本体がない、またはJavaで抽象的な宣言をする
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み】Javaの".class expected "について