焦點事件

package result;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class F8 {
public static void main(String[] args) {
new FocusTest();
}
}

class FocusTest extends JFrame {
JTextField txt1, txt2;

public FocusTest() {
super("焦點事件示例");
setBounds(300, 200, 350, 200);
// 設置組件在容器中的位置和大小
setVisible(true);
setLayout(new FlowLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);

txt1 = new JTextField("", 10);
txt2 = new JTextField("", 10);
// 内部類實現監聽器
txt1.addFocusListener(new txtFocus());
txt2.addFocusListener(new txtFocus());
add(txt1);
add(txt2);
add(new JButton("確定"));
add(new JLabel("使用tab鍵改變組建的焦點"));
validate();
}

//内部類
class txtFocus implements FocusListener {
public void focusGained(FocusEvent e) {
if (e.getSource() == txt1) {
txt1.setText("txt1獲得焦點");
} else {
txt2.setText("txt2獲得焦點");
}
}

public void focusLost(FocusEvent e) {
if (e.getSource() == txt1) {
txt1.setText("txt1失去焦點");
} else {
txt2.setText("txt2失去焦點");
}
}
}
}

 

原文地址:https://www.cnblogs.com/nanfengnan/p/13684526.html