可以定义一个全局变量boolean state=false
为button加一个监听器,当按下button的时候,在actionPerform方法里面改变:state=true;
在第一个jframe判断if(state==true){作出你想要的反应啊神马的}也可以做到你想要的效果
给你代码,点完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)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)