给你代码,点完show Frmae 以后,不断的点change试试
总得来说,你想改变另一个对象中的值,就需要有另一个对象的句柄(也就是实例)
这里就是frame
再有一个,就是你得有另一个对象的JTextField 的访问权限。
如果另一个对象的JTextField 是privete的,你就要有相应的get/set方法,如果这些都没有,你别想改变了。就是这样。
因为是你在做程序,这些访问关系不还是你说了算吗。
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class App1 extends JFrame {
private MyFrame frame = null;
private String[] mesg = { "hello", "welcome", "wait", "all" };
private int index = 0;
public App1() {
getContentPane().setLayout(null);
frame = new MyFrame();
JButton btnNewButton = new JButton("change");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (index == mesg.length) {
index = 0;
}
frame.text.setText(mesg[index++]);
}
});
btnNewButton.setBounds(12, 62, 116, 21);
getContentPane().add(btnNewButton);
JButton btnNewButton_1 = new JButton("show Frame");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.setVisible(true);
}
});
btnNewButton_1.setBounds(12, 26, 116, 21);
getContentPane().add(btnNewButton_1);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400, 300);
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
new App1();
}
}
class MyFrame extends JFrame {
JTextField text;
public MyFrame() {
getContentPane().setLayout(null);
text = new JTextField();
text.setBounds(12, 25, 91, 21);
getContentPane().add(text);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(200, 200);
setResizable(false);
}
}