swing輸入框內容即時同步到其他輸入框中
阿新 • • 發佈:2018-11-13
當swing面板中有很多密碼輸入框,有時需要填寫一個其他的可以即時同步。而swing面板不同於HTML頁面,需要新增事件監聽事件addKeyListener()來進行同步。下面是簡單的原理實現。
import java.awt.GridLayout; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class textAreaTest extends JFrame{ JTextField name; JTextField age; JTextField address; public textAreaTest(){ this.setTitle("文字框"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setBounds(100, 100, 250, 200); JPanel contentPane=new JPanel(); contentPane.setBorder(new EmptyBorder(5,5,5,5)); this.setContentPane(contentPane); contentPane.setLayout(new GridLayout(3,1,5,5)); JPanel pane1=new JPanel(); contentPane.add(pane1); JPanel pane2=new JPanel(); contentPane.add(pane2); JPanel pane3=new JPanel(); contentPane.add(pane3); JLabel label1=new JLabel("姓名:"); name=new JTextField(); name.setColumns(10); pane1.add(label1); pane1.add(name); JLabel label2=new JLabel("年齡:"); age=new JTextField(); age.setColumns(10); pane2.add(label2); pane2.add(age); JLabel label3=new JLabel("住址:"); address=new JTextField(); address.setColumns(10); pane3.add(label3); pane3.add(address); this.setVisible(true); name.addKeyListener(new KeyAdapter() {//鍵盤事件 @Override public void keyPressed(KeyEvent e) {//按壓 age.setText(name.getText()); } @Override public void keyTyped(KeyEvent e) {//敲擊 age.setText(name.getText()); } @Override public void keyReleased(KeyEvent e) {//釋放 age.setText(name.getText()); } }); } public static void main(String[]args){ new textAreaTest(); } }