简体   繁体   English

我很难从第一帧开始调用变量

[英]I'm having a hard time calling the variable from first frame

here is how should my program be. 这是我的程序应该如何。 In first frame, there is a textfield1 where a user input text and when he press a button, a new frame will be display with a textfield2 that displays the inputted text from the textfield1. 在第一帧中,有一个textfield1,用户在其中输入文本,当他按下按钮时,将显示一个新的框架,其中有textfield2,显示从textfield1输入的文本。 please help me with the syntax. 请帮助我的语法。 i'm still a beginner in java. 我仍然是Java的初学者。 much thanks guys. 非常感谢你们。

First Frame: 第一帧:

 textfield= new JTextField();
 textfield.setPreferredSize( new Dimension(200,30) ) ;
 textfield.setSize( textfield.getPreferredSize() ) ;
 textfield.setLocation(95,198) ;
 textfield.setSize(175,28);
 cont.add(textfield);


public void actionPerformed(ActionEvent e) {



        this.setVisible(false);
        new Frame2().setVisible(true); //displays the 2nd frame right?

}

now i don't know what to do on my 2nd frame or where to start because i can't get the variable from the first frame 现在我不知道在第二帧该怎么做或从哪里开始,因为我无法从第一帧获取变量

You can pass the desired variables in a constructor of Frame2 : 您可以在Frame2的构造函数中传递所需的变量:

Frame2 frame2 = new Frame2(textfield.getText());
frame2.setVisible(true);

All you need to do is - Define new constructor for second frame with textfield2: 您需要做的就是-使用textfield2为第二帧定义新的构造函数:

public Frame2(String toDisplay){
   textfield2 = new JTextField(toDisplay);
}

Try this: (just copy into a new file named FrameTest.java in the default package) 尝试以下操作:(只需复制到默认包中名为FrameTest.java的新文件中)

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class FrameTest extends JFrame {

  public static void main(String[] args) {
    JFrame frame = new FrameTest();
    frame.pack();
    frame.setVisible(true);
  }

  public FrameTest() {
    JPanel panel = new JPanel();

    final JTextField textField = new JTextField();
    textField.setPreferredSize(new Dimension(100, 20));
    panel.add(textField);

    JButton button = new JButton("press me");
    panel.add(button);

    setContentPane(panel);

    button.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
        FrameTest.this.setVisible(false);
        Frame2 secondFrame = new Frame2(textField.getText());
        secondFrame.pack();
        secondFrame.setVisible(true);
        }

    });
    }

    class Frame2 extends JFrame {

    public Frame2(String text) {
        getContentPane().add(new JTextField(text));
    }

    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我只是很难从我的 Java 课程中理解课程材料 - I'm just having hard time understanding the class material from my java class 所以我很难理解什么时候使用静态以及什么时候从函数头中排除它 - So I'm having a hard time understanding when to use static and when to exclude it from function headers 我很难在JavaFX中调整某些元素的大小 - I'm having a hard time getting some elements to resize in JavaFX 我在实现链接列表类时遇到了困难 - I'm having a hard time implementing my linked list class 我很难理解Java对象和类 - I'm having a hard time understanding Java objects and classes 我很难启动我的 IntellijIDEA 2019.2 - I'm having a hard time launching my IntellijIDEA 2019.2 我很难理解和实现构造函数,我正在寻找一些指导 - I'm having a hard time understanding and implementing a constructor and I'm looking for some guidance 这是我第一次使用 Swing,我在使用 JPanel 时遇到了问题 - This is my first time using swing and I'm having issues with the JPanel 我在使用 LibGDX TileMaps 时遇到了困难 - I am having a hard time with LibGDX TileMaps Android studio-我很难弄清为什么onTouchtEvent无法识别手指运动。 有什么建议么? - Android studio-I'm having hard time figuring out why the onTouchtEvent doesn't recognize finger movment . any suggestions?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM