java - 只有一个 JTextField 会输出或显示在框架上

标签 java swing jtextfield jtextarea

因此,当我单击添加菜单时,我正在尝试填写表格。因此,一旦我单击“添加”,它就会向我显示一个填写表单,我必须填写它,以便我可以使用我制作的 jtextarea 在另一个窗口或框架上查看它。我的问题是,一旦我在填写表单上输入数据,输出将仅在 jtextarea 中显示一个文本字段。我必须输出放置在 jtextfield 中的所有输入,并将其作为另一个 jtextarea 中的输入输出。另外,我也必须将 JLabel 放在 jtextarea 输出上。例如,我有 FirstName 标签,我将在 Jtext 上输入“我的名字”,然后它应该在另一个窗口上输出为 First Name: MyName 以及要输入的其他要求。希望我能得到一些小小的帮助。谢谢。这是我迄今为止的工作:

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

public class Sample extends JFrame implements ActionListener {
    JTextField r = new JTextField();
    JDesktopPane desk = new JDesktopPane();
    JMenuBar bar = new JMenuBar();
    JMenu mAdd = new JMenu("Add");
    JMenu mView = new JMenu("View");
    JMenuItem miNew =new JMenuItem("New");
    JMenuItem miExit = new JMenuItem("Exit");
    JMenuItem miStudInfo = new JMenuItem("Student Info");
    JMenuItem miEducInfo = new JMenuItem("Educational Info");

    JLabel personalInfo = new JLabel("Personal Information");
    JLabel space1 = new JLabel("");
    JLabel space2 = new JLabel("");
    JLabel studnum = new JLabel("Student #: ");
    JLabel space3 = new JLabel("");
    JTextField jtxstudnum = new JTextField();
    JLabel fname = new JLabel("First Name: ");
    JLabel space4 = new JLabel("");
    JTextField jtxfname = new JTextField();
    JLabel midname = new JLabel("Middle Name: ");
    JLabel space5 = new JLabel("");
    JTextField jtxmidname = new JTextField();
    JLabel lname = new JLabel("Last Name: ");
    JLabel space6 = new JLabel("");
    JTextField jtxlname = new JTextField();
    JLabel address = new JLabel("Address: ");
    JLabel space7 = new JLabel("");
    JTextField jtxaddress = new JTextField();

    JLabel educQualify = new JLabel("Educational Qualification");
    JLabel space8 = new JLabel("");
    JLabel space9 = new JLabel("");
    JLabel preschool = new JLabel("Preschool: ");
    JTextField jtxpre= new JTextField();
    JTextField jtxpreyear = new JTextField();
    JLabel elementary = new JLabel("Elementary: ");
    JTextField jtxelem = new JTextField();
    JTextField jtxelemyear = new JTextField();
    JLabel highschool = new JLabel("HighSchool: ");
    JTextField jtxhigh = new JTextField();
    JTextField jtxhighyear = new JTextField();
    JLabel college = new JLabel("College: ");
    JTextField jtxcol = new JTextField();
    JTextField jtxcolyear = new JTextField();
    JLabel postgrad = new JLabel("PostGrad: ");
    JTextField jtxpost = new JTextField();
    JTextField jtxpostyear = new JTextField();

    JLabel space10 = new JLabel("");
    JButton jbtnView = new JButton("View");
    JButton jbtnReset = new JButton("Reset");

JPopupMenu jpExit = new JPopupMenu("Select an option");
JButton yes = new JButton("Yes");
JButton no = new JButton("No");
JButton cancel = new JButton("Cancel");
JLabel message;

JTabbedPane tabbedPane;
//JTabbedPane tabStudInfo = new JTabbePane("Student Info");
//JTabbedPane tabEducInfo = new JTabbePane("Educational Info");
JPanel p1;
JPanel p2;
JPanel p3;

Container con = getContentPane();


public Sample() {
    setTitle("Student Information");
    setSize(900,700);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);

    con.add(desk);
    setJMenuBar(bar);

    bar.add(mAdd);
    bar.add(mView);
    mAdd.add(miNew);
    mAdd.add(miExit);
    mView.add(miStudInfo);
    mView.add(miEducInfo);

    miNew.addActionListener(this);
    mAdd.add(miExit);
    miExit.addActionListener(this);
    miStudInfo.addActionListener(this);
    miEducInfo.addActionListener(this);


    setVisible(true);
}

public void actionPerformed(ActionEvent e){
        if(e.getSource()==miNew){
        JInternalFrame nf = new JInternalFrame("Add -> New", true, true, true, true );
        nf.setSize(450,500);
        nf.setDefaultCloseOperation(JInternalFrame.HIDE_ON_CLOSE);

        Container con = nf.getContentPane();
        con.setLayout(new GridLayout(13,2));
        //con.setLayout(new GridLayout(6,2));
        con.add(personalInfo);
        con.add(space1);
        con.add(space2);
        //personalInfo.setBounds(2,2,200,30);
        //x=100, y =50, width=300, height=30
        con.add(studnum);
        con.add(space3);
        con.add(jtxstudnum);
        con.add(fname);
        con.add(space4);
        con.add(jtxfname);
        con.add(midname);
        con.add(space5);
        con.add(jtxmidname);
        con.add(lname);
        con.add(space6);
        con.add(jtxlname);
        con.add(address);
        con.add(space7);
        con.add(jtxaddress);

    //  con.setLayout(new GridLayout(6,3));
        con.add(educQualify);
        con.add(space8);
        con.add(space9);
        con.add(preschool);
        con.add(jtxpre);
        con.add(jtxpreyear);
        con.add(elementary);
        con.add(jtxelem);
        con.add(jtxelemyear);
        con.add(highschool);
        con.add(jtxhigh);
        con.add(jtxhighyear);
        con.add(college);
        con.add(jtxcol);
        con.add(jtxcolyear);
        con.add(postgrad);
        con.add(jtxpost);
        con.add(jtxpostyear);

    //  con.setLayout(new GridLayout(1,2));
        con.add(space10);
        con.add(jbtnView,BorderLayout.SOUTH);
        con.add(jbtnReset,BorderLayout.SOUTH);

        //r.setEditable(false);
        jbtnView.addActionListener(this);       
        jbtnReset.addActionListener(this);

        nf.setVisible(true);

        desk.add(nf);

    }

    else if(e.getSource()==jbtnView){
        r.setText(jtxstudnum.getText());

        JInternalFrame showNF =  new JInternalFrame("Show Result", true, true, true, true);
        showNF.setSize(400,500);
        showNF.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
        showNF.setLocation(300,0);

        Container showNFcon = showNF.getContentPane();
        showNFcon.setLayout(new FlowLayout());
        JTabbedPane pane = new JTabbedPane();

        JPanel p1 = new JPanel();
        p1.setLayout(new FlowLayout());
        JTextArea display = new JTextArea(20,30);
        p1.add(display);
        display.setText(jtxstudnum.getText()); display.setText(jtxfname.getText());


        display.setText(jtxfname.getText());
        display.setText(jtxmidname.getText());
        display.setText(jtxlname.getText());
        display.setText(jtxaddress.getText());

        pane.add("Student Info", p1);


        JPanel p3 = new JPanel();
        p3.setLayout(new FlowLayout());
        JTextArea display2 = new JTextArea(20,30);
        p3.add(display2);
        display2.setText(jtxpre.getText());
        display2.setText(jtxpreyear.getText());
        display2.setText(jtxelem.getText());
        display2.setText(jtxelemyear.getText());
        display2.setText(jtxhigh.getText());
        display2.setText(jtxhighyear.getText());
        display2.setText(jtxcol.getText());
        display2.setText(jtxcolyear.getText());
        display2.setText(jtxpost.getText());
        display2.setText(jtxpostyear.getText());
        pane.add("Educational Info", p3);


        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout());

        p2.add(pane);
        showNFcon.add(p2);


        showNF.setVisible(true);
        desk.add(showNF);
    }
        //else if(e.getSource()==b){
    //  r.setText(t.getText());
//  }
 /*
        else if(e.getSource()==miExit)
        //  con.add(jpExit);

        int response = JOptionPane.showConfirmDialog(null,"Exit?","Select an option",JOptionPane.QUESTION_MESSAGE);
        switch(response){
            case JOptionPane.YES_OPTION:
                message.setText("Yes");
                System.exit(0);
                break;
            case JOptionPane.NO_OPTION:
                message.setText("No");
                break;
            case JOptionPane.CANCEL_OPTION:
                message.setText("Cancel");
                break;

        }*/
        //System.exit(0);

}
/*
public void createPage1(){
    panel1 = new JPanel();
//  panel1=setLayout(new BorderLayout());


}

public void createPage2(){
    panel2 = new JPanel();
//  panel2=setLayout(new BorderLayout());


}*/


public static void main(String[] args) {
    Sample frame = new Sample();
}

}

最佳答案

你的问题就在这里......

display.setText(jtxstudnum.getText());
display.setText(jtxfname.getText());

display.setText(jtxfname.getText());
display.setText(jtxmidname.getText());
display.setText(jtxlname.getText());
display.setText(jtxaddress.getText());

setText 的作用是,“丢弃您当前将我给您的文本设置为您唯一内容的任何文本”...

相反,您想使用JTextArea#append相反

display.append(jtxstudnum.getText());
display.append(jtxfname.getText());

display.append(jtxfname.getText());
display.append(jtxmidname.getText());
display.append(jtxlname.getText());
display.append(jtxaddress.getText());

正如它所说,它将提供的文本附加到现有内容

仔细看看How to Use Text Areas了解更多详情

关于java - 只有一个 JTextField 会输出或显示在框架上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134554/

相关文章:

java - Swing - 更改 Windows 主题会重置自定义边框、插图和背景

java - H2 使用线程时内存数据库不一致

java - jbuttons 和具有 Action 监听器的 jtextfield

java - 试图使 JTextField 不可编辑

java - 为什么异常类引用变量在java中打印消息?

Java Loop - 删除具有 4 个或更多相同数字的数字

java - 如何更改 Netbeans 中的 JTable 标题单元格颜色

java - 如何在不使用 “Local variable x defined in an enclosing scope must be final…”的情况下使用数组索引

java - 如何从 Java 代码知道 VM 是否正在调试?

java - 尝试从我的网络服务器下载 exe 时出现 403 错误