建立了两个JFrame在java swing当中,但是怎样在两个JFrame之间传递数据,比如说JFrame1里面的一个文本框得到的数据传递到JFrame2的一个文本框中并显示出来,怎样才能实现这个功能?
2条回答 默认 最新
- Dead_Knight 2013-04-26 20:17关注
写个简单的例子,供你参考吧。
[code="java"]
package test;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;public class TestJFrame extends JFrame{
private SecondJFrame second = new SecondJFrame();
public TestJFrame() {
this.setLayout(new BorderLayout());final JTextField text = new JTextField("first field"); this.add(text, BorderLayout.CENTER); JButton button = new JButton("改变另一个JFrame的值"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String first = text.getText(); second.changeTextValue(first); } }); this.add(button, BorderLayout.SOUTH); this.setSize(300, 100); this.setLocation(200, 200); this.setVisible(true); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } /** * @param args */ public static void main(String[] args) { new TestJFrame(); }
}
class SecondJFrame extends JFrame {
JTextField text = new JTextField("second field");
public SecondJFrame() {
this.setLayout(new BorderLayout());
this.add(text, BorderLayout.CENTER);
this.setSize(200, 100);
this.setVisible(true);
}public void changeTextValue(String newValue) { text.setText(newValue); }
}
[/code]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵