【问题标题】:I want to swap text TextFields我想交换文本 TextFields
【发布时间】:2013-11-15 17:21:12
【问题描述】:

我试图交换 TextField 的文本,但只有一个 TextField 被更改,另一个保持不变:/,

我的代码是

import java.awt.*;
import java.awt.event.*;

        class mywindowclosing extends WindowAdapter {
                public void windowClosing(WindowEvent we) {
                        System.exit(0);
                }       
        }
        class Toggle extends Frame implements ActionListener {
                Label lb1, lb2;
                TextField txt1, txt2;
                Button bt1, bt2, bt3, bt4,bt5;
                public Toggle(){
                    super(".::Assignment::.");
                    setBounds(200,200,400,210);
                    setBackground(new Color(75,0,130));
                    setVisible(true);
                    setLayout(new FlowLayout(FlowLayout.LEFT));
                    //First Row
                    lb1=new Label("Label 1 ");
                    add(lb1);
                    txt1=new TextField(30);
                    add(txt1);
                    bt1=new Button("Button 1");
                    add(bt1);
                    bt1.addActionListener(this);
                    //2nd Row
                    lb2=new Label("Label 2 ");
                    add(lb2);
                    txt2=new TextField(30);
                    add(txt2);
                    bt2=new Button("Button 2");
                    add(bt2);
                    bt2.addActionListener(this);
                    //3rd Row
                    setLayout(new FlowLayout(FlowLayout.CENTER));
                    bt3=new Button("Clear");
                    add(bt3);
                    bt3.addActionListener(this);
                    bt4=new Button("Toggle");
                    add(bt4);
                    bt4.addActionListener(this);
                    bt5=new Button("Exit");
                    add(bt5);
                    bt5.addActionListener(this);
                    addWindowListener(new mywindowclosing());
                }

                public void actionPerformed(ActionEvent ae) {
                        if(ae.getSource()==bt1) {
                        txt1.setText("Button 1 pressed");
                        }
                        if(ae.getSource()==bt2) {
                        txt2.setText("Button 2 pressed");
                        }
                        if(ae.getSource()==bt3) {
                        txt1.setText("");
                        txt2.setText("");
                        }
                        if(ae.getSource()==bt4) {
                        txt1.setText(txt2.getText());
                        txt2.setText(txt1.getText());
                        }
                        if(ae.getSource()==bt5) {
                        System.exit(0);
                        }
                }       
        }       
        public class Toggler {
            public static void main(String args[]) {
                new Toggle();
            }
        }

【问题讨论】:

    标签: java awt gettext settext


    【解决方案1】:

    下面的代码:

      if(ae.getSource()==bt4) {
                    txt1.setText(txt2.getText());
                    txt2.setText(txt1.getText());
                    }
    

    这样做之后,txt1 (TextField ) 和 txt2 (TextField ) 中的文本将是相同的。

    如果你想在它们之间交换文本,你需要使用一个临时变量。

    试试这个:

        if (ae.getSource() == bt4) {
    
            String saveText1 = txt1.getText();
            txt1.setText(txt2.getText());
            txt2.setText(saveText1);
        }
    

    【讨论】:

    • 啧啧,你毁了我的猜谜游戏;)
    • 我是初学者..我知道的不多:/,再次感谢您的帮助..!
    【解决方案2】:
    txt1.setText(txt2.getText());
    txt2.setText(txt1.getText());
    

    问问你自己——在你做第一行之后 txt1 的值是多少?因此,什么会写入 txt2?

    Hint

    【讨论】:

    • 当我按下切换按钮时,TextField txt1 发生变化,但 TextField txt2 保持不变.. :/ :(
    • 当然可以。考虑以下代码:int a = 0, b = 1; a = b; b = a;。当您将b 复制a 时,您有什么价值?有些东西丢失了。
    • 当我按下按钮 1 时,它在 txt1 文本字段中显示按钮 1 被按下,与当我按下按钮 2 时它在 txt2 字段中显示按钮 2 被按下时相同,
    • 我希望这两个文本字段在我按下切换按钮时相互更改它们的文本.. :/
    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多