日期:2014-05-20  浏览次数:20769 次

请教一上小问题
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class WelcomeTest {

public static void main(String[] args) {
WelcomeFrame frame=new WelcomeFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class WelcomeFrame extends JFrame{
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 200;

public WelcomeFrame(){
setTitle("Welcome");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
WelcomePanel panel=new WelcomePanel();
Container contentPane = getContentPane();
contentPane.add(panel);
}

}
class WelcomePanel extends JPanel{
public WelcomePanel(){
JLabel prompt=new JLabel("请输入您的名字:");
final JTextField input=new JTextField(10);
final JTextField output=new JTextField(25);
JButton btnn=new JButton("Welcome");
add(prompt);
add(input);
add(output);
add(btnn);
//btnn.addActionListener(this);
//public void actionPerformed(ActionEvent e){
//String s= input.getText();
//output.setText("Hello  "+s+",欢迎参加考试!!");
//} 
}

}
请问下被我注释起来的那一部份应该怎么写啊

------解决方案--------------------
/btnn.addActionListener(this);
//public void actionPerformed(ActionEvent e){
//String s= input.getText();
//output.setText("Hello  "+s+",欢迎参加考试!!");
//} 
你这里的this指的是按钮,所以拿不到input对象,可以这样写

写个监听类
public class MyListener implements ActionListener{
       WelcomeFrame wf;
        MyListener(WelcomeFrame wf){
         this.wf=wf;
}
       public void actionPerformed(ActionEvent e) {
                 String s=this.wf.input.getText();
this.wf.output.setText("Hello  "+s+"   ");    

}
}

添加监听
 MyListener myListener=new  MyListener(this);
btnn.addActionListener(myListener);
------解决方案--------------------
public class WelcomeTest implements ActionListener{...}lz要学会看报什么错,然后对号入座。。