コールバック関数は、イベントが発生したときに呼び出される関数です。 GUI 開発では、ボタンのクリック、テキスト入力、マウスの動きなどのユーザー操作に応答するために、コールバック関数がよく使用されます。コールバック関数を利用することで、ユーザーの操作に応じてGUIプログラムを応答させ、さまざまなインタラクティブな機能を実現できます。
import javax.swing.*; import java.awt.event.*; public class ButtonClickExample { public static void main(String[] args) { // 创建一个按钮 JButton button = new JButton("Click Me!"); // 为按钮添加点击事件监听器 button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 当按钮被点击时,执行以下代码 JOptionPane.showMessageDialog(null, "Button clicked!"); } }); // 创建一个JFrame并添加按钮 JFrame frame = new JFrame("Button Click Example"); frame.add(button); frame.setSize(300, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
この例では、ボタンを作成し、それにクリック イベント リスナーを追加します。ボタンをクリックすると、リスナー内のコードが実行され、メッセージ ダイアログが表示されます。
import javax.swing.*; import java.awt.event.*; public class TextInputExample { public static void main(String[] args) { // 创建一个文本框 JTextField textField = new JTextField(); // 为文本框添加文本输入事件监听器 textField.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { // 当用户在文本框中输入字符时,执行以下代码 System.out.println("Key typed: " + e.getKeyChar()); } @Override public void keyPressed(KeyEvent e) { // 当用户按下键盘上的某个键时,执行以下代码 System.out.println("Key pressed: " + e.getKeyCode()); } @Override public void keyReleased(KeyEvent e) { // 当用户松开键盘上的某个键时,执行以下代码 System.out.println("Key released: " + e.getKeyCode()); } }); // 创建一个JFrame并添加文本框 JFrame frame = new JFrame("Text Input Example"); frame.add(textField); frame.setSize(300, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
この例では、テキスト ボックスを作成し、それにテキスト入力イベント リスナーを追加します。ユーザーがテキスト ボックスに文字を入力するか、キーボードのキーを押すか、キーボードのキーを放すと、リスナー内のコードが実行され、対応する情報が出力されます。
import javax.swing.*; import java.awt.event.*; public class MouseMoveExample { public static void main(String[] args) { // 创建一个面板 JPanel panel = new JPanel(); // 为面板添加鼠标移动事件监听器 panel.addMouseMotionListener(new MouseMotionListener() { @Override public void mouseMoved(MouseEvent e) { // 当鼠标在面板中移动时,执行以下代码 System.out.println("Mouse moved: (" + e.getX() + ", " + e.getY() + ")"); } @Override public void mouseDragged(MouseEvent e) { // 当鼠标在面板中被拖动时,执行以下代码 System.out.println("Mouse dragged: (" + e.getX() + ", " + e.getY() + ")"); } }); // 创建一个JFrame并添加面板 JFrame frame = new JFrame("Mouse Move Example"); frame.add(panel); frame.setSize(300, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
この例では、パネルを作成し、それにマウス移動イベント リスナーを追加します。パネル内でマウスを移動またはドラッグすると、リスナー内のコードが実行され、マウスの現在位置が出力されます。
コールバック関数はGUI開発において非常に重要な概念であり、ユーザーの操作に応じてGUIプログラムを応答させることで、様々なインタラクティブな機能を実現することができます。この記事では、GUI 開発におけるコールバック関数の実際的な適用シナリオを紹介し、具体的なコード例を示します。これらの例がコールバック関数の理解を深め、使用するのに役立つことを願っています。
以上がGUI開発におけるJavaコールバック関数の実践事例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。