日期:2014-05-20  浏览次数:20730 次

使用GWT开发如何实现页面传值和跳转?
目前的问题是这样:
GWT的主入口画了一个list,每当选择list中的一个元素,就会在它右边的区域显示一个信息显示的页面。比如选择A元素就显示a页面,选择B元素就显示b页面等等。有个问题需要请教大家:我想实现在a页面中点击一个按钮,直接跳到b页面,然后在b页面上的文本框中输入一串字符,点击一个按钮,重新显示a页面,并且a页面的label上显示我在b页面上输入的字符串内容。请问该如何实现?谢谢!100分送上。

------解决方案--------------------
你所指的页面是JFrame或者JDialog吗?
如果是:JFrame跳转到JDialog中时,你把JFrame传过去,或者把需要的值传到JDialog.(可以构造方法传)

呵呵,LZ是不是做WEB做多了?你把问题想得复杂化了.很简单的一个东西.
------解决方案--------------------

Java code
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;



public class SendPara {

    public static void main(String[] args) {
        JFrame jf = new JFrame();
        jf.setSize(400,300);
        jf.add(new Pane1());
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);
    }

}

class Pane1 extends JPanel implements ActionListener{
    private JLabel jlb1;
    public Pane1(){
        jlb1 = new JLabel("");
        JButton jbt1 = new JButton("打开A");
        setLayout(new BorderLayout());
        jbt1.addActionListener(this);
        add(jlb1,BorderLayout.CENTER);
        add(jbt1,BorderLayout.SOUTH);
    }
    
    public void setLabelText(String message){
        jlb1.setText(message);
    }

    public void actionPerformed(ActionEvent e) {
        A a = new A(this);
        a.setVisible(true);
    }
}

class A extends JDialog implements ActionListener{
    private Pane1 _pan1;
    private JTextField jt1;
    public A(Pane1 pan1){
        super((JFrame)null,true);
        setSize(400,300);
        _pan1 = pan1;
        jt1 = new JTextField();
        JButton jbt1 = new JButton("确定");
        jbt1.addActionListener(this);
        
        setLayout(new BorderLayout());
        add(jt1,BorderLayout.CENTER);
        add(jbt1,BorderLayout.SOUTH);
    }
    
    public void actionPerformed(ActionEvent e) {
        _pan1.setLabelText(jt1.getText());
        dispose();
    }
    
    
}