题目如下:
    当某个JTEXFIELD拥有焦点时,若按下ENTER键,则会产生一个EVENT的事件对象并相应的调用actionPerformed事件处理~
   actionPerformed事件处理我写出来~~前面的键盘事件怎么处理??附上我写的代码:
        // Exercise 13.12: TemperatureConversion.java
import java.awt.*;public class TemperatureConversion extends JFrame
{
   // JLabel and JTextField for Fahrenheit
   private JLabel fahrenheitJLabel;
   private JTextField fahrenheitJTextField;
   
   // JLabel and JTextField for Celsius
   private JLabel celsiusJLabel;
   private JTextField celsiusJTextField;   // DecimalFormat for temperatures
   DecimalFormat temperature = new DecimalFormat( "0.0" );   // no-argument constructor
   public TemperatureConversion()
   {
      createUserInterface();
   }   // create and position GUI components; register event handlers
   private void createUserInterface()
   {
      // get content pane for attaching GUI components
      Container contentPane = getContentPane();      // enable explicit positioning of GUI components 
      contentPane.setLayout( null );      // set up fahrenheitJLabel
      fahrenheitJLabel = new JLabel();
      fahrenheitJLabel.setBounds( 12, 24, 72, 21 );
      fahrenheitJLabel.setText( "Fahrenheit:" );
      contentPane.add( fahrenheitJLabel );      // set up fahrenheitJTextField
      fahrenheitJTextField = new JTextField();
      fahrenheitJTextField.setBounds( 78, 24, 64, 21 );
      fahrenheitJTextField.setHorizontalAlignment( 
         JTextField.RIGHT );
      contentPane.add( fahrenheitJTextField );
      fahrenheitJTextField.addActionListener(
       new ActionListener(){

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
amountNeededJTextAreaActionPerformed(e);
}
        
});// anonymous inner class
         
            // event handler called when enter is pressed in 
            // fahrenheitJTextField
         
         
            
        
      // set up celsiusJLabel
      celsiusJLabel = new JLabel();
      celsiusJLabel.setBounds( 162, 24, 56, 21 );
      celsiusJLabel.setText( "Celsius:" );
      contentPane.add( celsiusJLabel );      // set up celsiusJTextField
      celsiusJTextField = new JTextField();
      celsiusJTextField.setBounds( 212, 24, 64, 21 );
      celsiusJTextField.setHorizontalAlignment( JTextField.RIGHT );
      contentPane.add( celsiusJTextField );
      celsiusJTextField.addActionListener(         new ActionListener() // anonymous inner class
         {
            // event handler called when enter is pressed in 
            // celsiusJTextField
            public void actionPerformed( ActionEvent event )
            {
             amountNeededJTextAreaActionPerformed(event);
            }         } // end anonymous inner class      ); // end call to addActionListener      // set properties of application's window
      setTitle( "Temperature Converter" ); // set title-bar string
      setSize( 306, 100 );                 // set window size
      setVisible( true );                  // show window   } // end method createUserInterface   protected void amountNeededJTextAreaActionPerformed(KeyEvent event) {
// TODO Auto-generated method stub

}protected void amountNeededJTextAreaActionPerformed(ActionEvent event) {
// TODO Auto-generated method stub
   double fahrenheit = Double.parseDouble(fahrenheitJTextField.getText());
   double Celsius = Double.parseDouble(celsiusJTextField.getText());
   Celsius = (fahrenheit-32)*(5.0/9.0);
   celsiusJTextField.setText(String.valueOf(temperature.format(Celsius)));
}// main method
   public static void main( String[] args )
   {
      TemperatureConversion application = 
         new TemperatureConversion();
      application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   
   } // end method main} // end class TemperatureConversion

解决方案 »

  1.   


    protected void amountNeededJTextAreaActionPerformed(KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (event.getKeyCode() == KeyEvent.VK_ENTER) {
    double fahrenheit = Double.parseDouble(fahrenheitJTextField.getText()); 
    double Celsius = Double.parseDouble(celsiusJTextField.getText()); 
    Celsius = (fahrenheit-32)*(5.0/9.0); 
    celsiusJTextField.setText(String.valueOf(temperature.format(Celsius))); 
    }


    再分别为fahrenheitJTextField ,celsiusJTextField 添加addKeyListener