日期:2014-05-17  浏览次数:20722 次

我想在单击确定按钮后去改变JTextField的内容,怎样在现有的基础上改
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MyTest_12{
public static void main(String []args){
JTextField txtA=new JTextField("请单击确定按钮");
JButton btOk=new JButton("确定");

ActionListener myal=new myActionListener();
btOk.addActionListener(myal);
JPanel p=new JPanel();
p.add(txtA);
p.add(btOk);

JFrame f=new JFrame();
f.setSize(200,300);
Container contentPane=f.getContentPane();
contentPane.add(p);
f.show();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
}
}
class myActionListener implements ActionListener{
public myActionListener(){
}
public void actionPerformed(ActionEvent e){
JButton b=(JButton)e.getSource();
b.setText("OK");
}
}

------解决方案--------------------
public class MyTest_12{

//使用静态全局变量
static JTextField txtA=new JTextField("请单击确定按钮");

public static void main(String []args){
//JTextField txtA=new JTextField("请单击确定按钮");
... ...


public void actionPerformed(ActionEvent e){
JButton b=(JButton)e.getSource();
b.setText("OK");

txtA.setText("修改后的值");//在这里修改他的值。

}

------解决方案--------------------
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MyTest_12{
public static void main(String []args){
JTextField txtA=new JTextField("请单击确定按钮");
JButton btOk=new JButton("确定");

ActionListener myal=new myActionListener(){
public void actionPerformed(ActionEvent e){
b.setText("OK");
}


};btOk.addActionListener(myal);
JPanel p=new JPanel();
p.add(txtA);
p.add(btOk);

JFrame f=new JFrame();
f.setSize(200,300);
Container contentPane=f.getContentPane();
contentPane.add(p);
f.show();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
 
改用匿名内部类,匿名内部类默认拥有外部类对象的引用,所以就可以访问外部类的成员变量