0

我正在尝试使用 JAVA 将字符串解析到另一个帧

我有 2 个 jFrame。jFrame1 有 1 个文本字段,jFrame 2 有 1 个文本字段。我想将 jFrame1 文本字段的文本解析为 jframe2 的文本字段。

它看起来像这样:但这不是代码:(

jFrame2.textfield1.setText(jFrame1.textfield1.gettext());

任何人都知道如何使用 JAVA 将字符串解析到另一个框架?

提前致谢!

4

1 回答 1

2

假设您在屏幕上同时有两个单独的 GUI,因为两个 textField 具有相同的引用,每个 JFrame 本身就是一个对象。因此,访问另一个对象变量的唯一方法是使用它的方法。在 jFrame2 中创建一个 setter 方法来更改相关的 textField。请参阅下面的工作代码。

 import java.awt.*;
 import javax.swing.*;
 import javax.swing.BoxLayout;
 import java.awt.event.*;


public class JframeLink {




    public static void main(String[] args) 
    {
        new JframeOneGui();
        new JframeTwoGui();
    }


    //JFrame one Object
    public static class JframeOneGui extends JFrame implements ActionListener
    {
        JPanel jPanelOne = new JPanel();
        JTextField textField1 = new JTextField("Message for transfer");
        JButton buttonOne = new JButton("Transfer");

        public JframeOneGui()
        {
            //setup swing components
            textField1.setSize(100,10);
            buttonOne.addActionListener(this);
            //setup jPanelOne
            jPanelOne.setLayout(new BoxLayout(jPanelOne, 1));
            jPanelOne.add(textField1);
            jPanelOne.add(buttonOne);
            //setup JframeOneGui
            this.add("Center",jPanelOne);
            this.setLocation(25,25);
            this.setTitle("JframeOneGui");
            this.setSize(200,200);
            this.setResizable(false);
            this.setVisible(true);
        }


        public void actionPerformed(ActionEvent e)
        {
            if(e.getSource() == buttonOne)
            {
                //Here we are calling JframeTwoGui's Setter method
                JframeTwoGui.setTextFieldOne(textField1.getText());
            }
        }   

    }

    //JFrame two Object
    public static class JframeTwoGui extends JFrame
    {
        JPanel jPanelOne = new JPanel();
        static JTextField textField1 = new JTextField();

        public JframeTwoGui()
        {


            jPanelOne.setLayout(new BoxLayout(jPanelOne, 1));
            jPanelOne.add(textField1);

            this.add("Center",jPanelOne);
            this.setLocation(300,25);
            this.setTitle("JframeTwoGui");
            this.setSize(200,200);
            this.setResizable(false);
            this.setVisible(true);

        }

        //Setter to change TextFieldOne in this Object
        public static void setTextFieldOne(String text)
        {
            textField1.setText(text);

        }
    }




}
于 2013-09-11T12:44:59.433 回答