首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

swing两个窗体传值有关问题

2012-05-15 
swing两个窗体传值问题?最近在学习swing,可视化界面开发。用的是myeclipse 10的matisse4插件。我有个主窗体

swing两个窗体传值问题?
最近在学习swing,可视化界面开发。用的是myeclipse 10的matisse4插件。我有个主窗体和一个子窗体。
通过点击主窗体的按钮来打开子窗体,子窗体中获取当前时间。点击子窗体确定后把值传到主窗体的JTextArea中。隐藏子窗体。研究了好几天了没弄出来。请教做过的朋友帮忙给个例子。实在是困扰好久了。

[解决办法]
你是要分成两个类吗?

Java code
package com.zf.ui;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextArea;/** * 主窗口 * @author zhoufeng * */public class MainFrame {    JFrame frame = null ;    JTextArea text = null;    JButton button = null;    public void init(){        frame = new JFrame("主窗口");        frame.setBounds(500, 250, 500, 300);        frame.setVisible(true);        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        text = new JTextArea();        text.setSize(100, 50 );          text.setText("这里将会显示时间!");        frame.add(text , BorderLayout.NORTH);        button = new JButton("打开子窗口");        frame.add(button , BorderLayout.SOUTH);        button.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                System.out.println("点击了。");                new ChildFrame(MainFrame.this);            }        });    }    public static void main(String[] args) {        new MainFrame().init();    }}/** * 子窗口 * @author zhoufeng * */class ChildFrame{    MainFrame mainFrame = null;            JFrame frame = null;    JButton button = null;    public ChildFrame(final MainFrame mainFrame){           frame = new JFrame("子窗口");        frame.setBounds(500, 250, 300, 150);        frame.setVisible(true);        button = new JButton("为主窗口中的文本域赋值");        button.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                mainFrame.text.setText(new Date().toLocaleString());                frame.setVisible(false);            }        });        frame.add(button , BorderLayout.NORTH);    }}
[解决办法]
探讨

引用:
传对象引用。先看下我的代码吧。尤其是
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == createFrame) {
TestFrame f = new TestFrame("新窗体",this);
f.time.setText(new Date()+ "……

热点排行