如何将字符串从一个JFrame传递到现有的JFrame

时间:2016-07-28 05:47:08

标签: java string jframe

我有两个jFrame Form_1 Form_2

这是 Form_1

Form_1

以下是 Form_2

Form_2

我已经做的是, Form_2 将首先运行,当我按 “打开表单1” 按钮时,它将打开Form_1。

现在,我想要做的是,当我在 Form_1文本框中输入文字并按 “在Form_2中显示” 时, Form_1 将关闭并在 Form_2文本框中显示文字。

我试过这个:

    function generateMLChart(divId,
                    chartName,
                    chartId,
                    qNo) {
console.log('generateMLChart called... ' + divId+ ' - '+ chartName + ' - '+qNo);

$.getJSON("./chartservlet?chartId=" + divId + "&queryNumber=" + qNo, function (data, textStatus, jqxhr) {
    console.log("textStatus = " + textStatus);// Success
    console.log("jqxhr.status =" + jqxhr.status);// 200
    console.log("divId = " + divId);


    var len = data.multilinedata.length;
    i = 0;

    // setting options variable
    var options = {
        credits :  {
            enabled : false
        },
        rangeSelector :  {
            allButtonsEnabled : true
        },
        legend :  {
            enabled : true
        },
        title :  {
            text : chartName
        },
        series : []
    }

    // setting options.series variable with json data, it should be a loop coz, it can have multiple series.
    for (i;i < len;i++) {
        options.series.push(data.multilinedata[i]);
    }

    // finally populate the charts container
    $('#' + divId).highcharts("StockChart", options);

    console.log('-- success function - complete');

}).fail(function (jqxhr, settings, exception) {
    console.error("exception =" + exception);
    console.log("jqxhr =" + jqxhr);
    console.log("settings =" + settings);
    alert("Triggered ajaxError handler. Contact IT- Helpdesk");
});

    }

虽然有效,但会打开一个新的 Form_2 并显示其中的文字。如何在不打开新文本的情况下在现有Form_2 中显示文字?请帮帮我。

3 个答案:

答案 0 :(得分:1)

如果要从Frame_2打开Frame_1,只需将Frame_2的对象传递给Frame_1。

在Frame_2中

var m = require('moment');
m("2016-03-07 15:13:49","YYYY-MM-DD HH:mm:ss").fromNow();  // 5 months ago
m("2016-07-28 12:13:49","YYYY-MM-DD HH:mm:ss").fromNow();  // 2 hours ago
m("2016-07-28 13:13:49","YYYY-MM-DD HH:mm:ss").fromNow();  // 36 minutes ago
m("2016-07-28 13:49:00","YYYY-MM-DD HH:mm:ss").fromNow();  // a minute ago
m("2016-07-28 13:50:00","YYYY-MM-DD HH:mm:ss").fromNow();  // a few seconds ago

Frame_1构造函数中的位置如下所示

Frame_1 from1 = new Frame_1(this);

现在在Frame_1中使用form2

Frame_2 form2;
public Frame_1(Frame_2 fr2){
   form2=fr2;
}

答案 1 :(得分:0)

您可以创建并初始化Form_2对象,并立即将其隐藏在主方法(form2.setVisible(false))中。然后,当你想要显示它时,像你已经拥有的那样更新文本框对象,然后调用form2.setVisible(true)。

答案 2 :(得分:0)

将您的Form_2实例设为全局,以便Form_1ButtonActionPerformed.

访问它
public class MyClass{
    public static Form_2 form2;

    public void someMethod(){
        form2 = new Form_2();
        ...
    }
    ...
}

private void Form_1ButtonActionPerformed(java.awt.event.ActionEvent evt) {
    String form1_text = form1textbox.getText();
    MyClass.form2.form2textbox.setText(form1_text);
    form2.setVisible(true);
    this.setVisible(false);
}