如何显示输出Jlabel的另一个Jframe

时间:2016-12-16 15:25:12

标签: java

当我在JtextField的{​​{1}}中输入文字,然后点击确定按钮时,文字将显示在FrameIn的{​​{1}}上,最后一帧就是我我希望,因为我仍然不知道该怎么做。

我正在使用NetBeans GUI构建器。

Jfield

和我的FrameShow

FrameShow

因此,如果我在package learn; public class FrameIn extends javax.swing.JFrame { private String Name = null; public FrameIn() { initComponents(); } * * private void ButtonActionPerformed(java.awt.event.ActionEvent evt) { FrameShow show = new FrameShow(); Name = Text.getText(); this.dispose(); show.setVisible(true); } public String getName(){ return this.Name; } 的{​​{1}}中输入文字,则输出将显示在public class FrameShow extends javax.swing.JFrame { /** * Creates new form Frame1 */ public FrameShow() { FrameIn inName = new FrameIn(); initComponents(); Label.setText(inName.getName()); } 第二个Jframe的JtextField

此代码的输出表单在FrameIn

上为空

1 个答案:

答案 0 :(得分:1)

您可以在两个帧之间传递参数,

因此,当您点击按钮时,请执行一个调用frameShow的操作,然后您可以在框架的构造函数中传递值,也可以在第二帧中创建一个字段并使用setter把你的价值,这就是想法。

class A{
   ...
   //action
   String v = textField.getText();
   B b = new B(v);
   ...
}

class B{
   public B(String v){
      this.label.setText(v);
   }
}

第二个想法:

class A{
     ...
     //action
     String v = textField.getText();
     B b = new B();
     b.setLabelValue(v);
     ...
}

这是你的代码应该是这样的:

private void ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                       
    Name = Text.getText();
    FrameShow show = new FrameShow(Name);
    this.dispose();
    show.setVisible(true);
} 

public FrameShow(String name) {
    initComponents();
    Label.setText(name);
}

希望你明白我的观点并理解这个想法。