0

これが私のプログラムのあり方です。最初のフレームには、ユーザーがテキストを入力するテキストフィールド1があり、ボタンを押すと、テキストフィールド1から入力されたテキストを表示するテキストフィールド2とともに新しいフレームが表示されます。構文を手伝ってください。私はまだJavaの初心者です。みんなありがとう。

最初のフレーム:

 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?

}

最初のフレームから変数を取得できないため、2番目のフレームで何をすべきかまたはどこから始めればよいかわかりません

4

3 に答える 3

1

Frame2:のコンストラクターで目的の変数を渡すことができます。

Frame2 frame2 = new Frame2(textfield.getText());
frame2.setVisible(true);
于 2010-03-18T12:51:17.623 に答える
1

あなたがする必要があるのは-textfield2で2番目のフレームの新しいコンストラクターを定義することです:

public Frame2(String toDisplay){
   textfield2 = new JTextField(toDisplay);
}
于 2010-03-18T12:53:41.420 に答える
0

これを試してください:(デフォルトパッケージの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));
    }

    }

}
于 2010-03-18T13:20:03.370 に答える