需要帮助在另一个框架上显示 Java 表单的输入
Need help to display inputs of a Java's form on an other frame
所以我尝试在表单中输入一些数据,并在单击按钮时存储它们以将它们显示在数组中 "Show" 但我不知道该怎么做。
这是我的表格:
import java.awt.*;
import java.awt.event.*;
public class test {
public static void main(String[] args) {
Frame frm=new Frame("Add employee");
Label lbl = new Label();
frm.add(lbl);
frm.setSize(350,200);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Panel p = new Panel();
Panel p1 = new Panel();
Label jFirstName = new Label("first name");
TextField lFirstName = new TextField(20);
Label jLastName =new Label("last name");
TextField lLastName=new TextField(20);
Label jAge= new Label("Age");
TextField lAge = new TextField(20);
Label jDate =new Label("Date");
TextField lDate=new TextField(20);
Label jType = new Label("employee type");
TextField lType = new TextField(20);
p.setLayout(new GridLayout(7,1));
p.add(jFirstName);
p.add(lFirstName);
p.add(jLastName);
p.add(lLastName);
p.add(jAge);
p.add(lAge);
p.add(jDate);
p.add(lDate);
p.add(jType);
p.add(lType);
Button Submit=new Button("Submit");
p.add(Submit);
p1.add(p);
frm.add(p1,BorderLayout.NORTH);
}
}
你有什么想法吗?
试试下面的代码。我从您的代码开始并对其进行了修改。很少有我会 suggest/point:
考虑使用 Swing 而不是 AWT(例如 JFrame 而不是 Frame)。摇摆更丰富。
尝试将代码分成单独的 类 而不是在 main() 方法中编写所有内容。
我删除了面板 p1,因为它是多余的。
public class Test
{
public static void main(String[] args)
{
final Frame frm=new Frame("Add employee");
Label lbl = new Label();
frm.add(lbl);
frm.setSize(350,200);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Panel p = new Panel();
//Panel p1 = new Panel();
final Label jFirstName = new Label("first name");
final TextField lFirstName = new TextField(20);
final Label jLastName =new Label("last name");
final TextField lLastName=new TextField(20);
final Label jAge= new Label("Age");
final TextField lAge = new TextField(20);
final Label jDate =new Label("Date");
final TextField lDate=new TextField(20);
final Label jType = new Label("employee type");
final TextField lType = new TextField(20);
p.setLayout(new GridLayout(7,1));
p.add(jFirstName);
p.add(lFirstName);
p.add(jLastName);
p.add(lLastName);
p.add(jAge);
p.add(lAge);
p.add(jDate);
p.add(lDate);
p.add(jType);
p.add(lType);
Button Submit=new Button("Submit");
Submit.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String[] formData = new String[5];
formData[0] = jFirstName.getText() + ": " + lFirstName.getText();
formData[1] = jFirstName.getText() + ": " + lLastName.getText();
formData[2] = jAge.getText() + ": " + lAge.getText();
formData[3] = jDate.getText() + ": " + lDate.getText();
formData[4] = jType.getText() + ": " + lType.getText();
TextArea textArea = new TextArea();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < formData.length; i++)
{
sb.append(formData[i]);
sb.append("\n");
}
textArea.setText(sb.toString());
final Dialog dialog = new Dialog(frm, "Form Data");
dialog.setModal(true);
dialog.addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{
dialog.setVisible(false);
}
});
dialog.add(textArea);
dialog.pack();
dialog.setVisible(true);
}
});
p.add(Submit);
//p1.add(p);
frm.add(/*p1*/p,BorderLayout.NORTH);
}
}
所以我尝试在表单中输入一些数据,并在单击按钮时存储它们以将它们显示在数组中 "Show" 但我不知道该怎么做。
这是我的表格:
import java.awt.*;
import java.awt.event.*;
public class test {
public static void main(String[] args) {
Frame frm=new Frame("Add employee");
Label lbl = new Label();
frm.add(lbl);
frm.setSize(350,200);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Panel p = new Panel();
Panel p1 = new Panel();
Label jFirstName = new Label("first name");
TextField lFirstName = new TextField(20);
Label jLastName =new Label("last name");
TextField lLastName=new TextField(20);
Label jAge= new Label("Age");
TextField lAge = new TextField(20);
Label jDate =new Label("Date");
TextField lDate=new TextField(20);
Label jType = new Label("employee type");
TextField lType = new TextField(20);
p.setLayout(new GridLayout(7,1));
p.add(jFirstName);
p.add(lFirstName);
p.add(jLastName);
p.add(lLastName);
p.add(jAge);
p.add(lAge);
p.add(jDate);
p.add(lDate);
p.add(jType);
p.add(lType);
Button Submit=new Button("Submit");
p.add(Submit);
p1.add(p);
frm.add(p1,BorderLayout.NORTH);
}
}
你有什么想法吗?
试试下面的代码。我从您的代码开始并对其进行了修改。很少有我会 suggest/point:
考虑使用 Swing 而不是 AWT(例如 JFrame 而不是 Frame)。摇摆更丰富。 尝试将代码分成单独的 类 而不是在 main() 方法中编写所有内容。 我删除了面板 p1,因为它是多余的。
public class Test
{
public static void main(String[] args)
{
final Frame frm=new Frame("Add employee");
Label lbl = new Label();
frm.add(lbl);
frm.setSize(350,200);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Panel p = new Panel();
//Panel p1 = new Panel();
final Label jFirstName = new Label("first name");
final TextField lFirstName = new TextField(20);
final Label jLastName =new Label("last name");
final TextField lLastName=new TextField(20);
final Label jAge= new Label("Age");
final TextField lAge = new TextField(20);
final Label jDate =new Label("Date");
final TextField lDate=new TextField(20);
final Label jType = new Label("employee type");
final TextField lType = new TextField(20);
p.setLayout(new GridLayout(7,1));
p.add(jFirstName);
p.add(lFirstName);
p.add(jLastName);
p.add(lLastName);
p.add(jAge);
p.add(lAge);
p.add(jDate);
p.add(lDate);
p.add(jType);
p.add(lType);
Button Submit=new Button("Submit");
Submit.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
String[] formData = new String[5];
formData[0] = jFirstName.getText() + ": " + lFirstName.getText();
formData[1] = jFirstName.getText() + ": " + lLastName.getText();
formData[2] = jAge.getText() + ": " + lAge.getText();
formData[3] = jDate.getText() + ": " + lDate.getText();
formData[4] = jType.getText() + ": " + lType.getText();
TextArea textArea = new TextArea();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < formData.length; i++)
{
sb.append(formData[i]);
sb.append("\n");
}
textArea.setText(sb.toString());
final Dialog dialog = new Dialog(frm, "Form Data");
dialog.setModal(true);
dialog.addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{
dialog.setVisible(false);
}
});
dialog.add(textArea);
dialog.pack();
dialog.setVisible(true);
}
});
p.add(Submit);
//p1.add(p);
frm.add(/*p1*/p,BorderLayout.NORTH);
}
}