17.7

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

public class Test_17_7 extends JFrame{
    private StillClock stclk = new StillClock();
    private JPanel JHold = new JPanel(); 
    private JLabel jlHour = new JLabel("Hour");
    private JLabel jlMinut = new JLabel("Minute");
    private JLabel jlScnd = new JLabel("Second");
    private JTextField jt1 = new JTextField(2);
    private JTextField jt2 = new JTextField(2);
    private JTextField jt3 = new JTextField(2);    
    
    public Test_17_7(){
        JHold.setLayout(new GridLayout(1,6));
        JHold.add(jlHour);
        JHold.add(jt1);
        JHold.add(jlMinut);
        JHold.add(jt2);
        JHold.add(jlScnd);
        JHold.add(jt3);
        
        jt1.addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent e){
                if(e.getKeyCode() == KeyEvent.VK_ENTER)
                    stclk.setHour(Integer.parseInt(jt1.getText()));
            }
        });
        jt2.addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent e){
                if(e.getKeyCode() == KeyEvent.VK_ENTER)
                    stclk.setMinute(Integer.parseInt(jt2.getText()));
            }
        });
        jt3.addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent e){
                if(e.getKeyCode() == KeyEvent.VK_ENTER)
                    stclk.setSecond(Integer.parseInt(jt3.getText()));
            }
        });
        
        add(stclk,BorderLayout.CENTER);
        add(JHold,BorderLayout.SOUTH);
        
        
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test_17_7 frame = new Test_17_7();
        frame.setTitle("Test_17_7");
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);    
    }

}
View Code

需要注意的地方: keyPressed总是不小心会大写,这样接口的响应函数就得不到调用

原文地址:https://www.cnblogs.com/wanjiang/p/5762497.html