-1

私はJavaが初めてで、簡単な質問をしたいだけです。最初のフォームとテキストフィールドがあり、そこにテキストを入力すると、ボタンをクリックすると新しいフォームが出てきて、テキストフィールドのテキストが新しいフォームにラベルを付ける

このコードを試してみましたが、うまくいきません

public class Data extends javax.swing.JFrame {

  public Data() {
    initComponents();

    FrmLogIn f = new FrmLogIn();
    User.setText(f.UName.getText());
    User.setVisible(true);
}
4

2 に答える 2

1

コードを見ると、イベント処理部分が含まれていないようです(作業を完了するには、それを含める必要があります)。

簡単な紹介として、コードでこれを行う必要があります。

button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                FrmLogIn f = new FrmLogIn();
                            User.setText(f.UName.getText());
                            f.setVisible(true);
                }
 }

注:が でありが拡張され、レイアウトやサイズなどの必須フィールドが設定されてUserいるJLabelと仮定します。UNameJTextField
FrmLogInJFrameJFrame

イベント処理の詳細については、こちらを参照してください

編集2

サンプルコードスニペット - このようなものが必要です (これは、先に進む方法を理解するための大まかなものです)


@madProgrammer のコメントに従って3 を編集null-レイアウトをFlowLayout

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.*;
import javax.swing.JTextField;


class FrmLogIn extends JFrame{
    JLabel User;

    public FrmLogIn()  {
        setLayout(new FlowLayout());
        setSize(200,200);
        User = new JLabel("");
       // User.setBounds(20,30,100,40);
        add(User);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

}

class ForTest extends JFrame{
   JButton enter;
   JTextField UName;

    public ForTest()  {
     setLayout(new FlowLayout());
     setSize(300,300);

     enter = new JButton("enter");
     //enter.setBounds(20,20,100,30);
     UName = new JTextField();
     //UName.setBounds(40,80,60,30);
     add(UName);
     add(enter);
     setVisible(true);
     enter.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    FrmLogIn f = new FrmLogIn();
                                f.User.setText(UName.getText());
                                f.setVisible(true);
                                setVisible(false);
                    }
     }); 

     setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
      new ForTest();
    }
}
于 2013-02-12T05:01:26.550 に答える