[英]submit data to a Jlist from another class
我有一个程序,其中一个窗口弹出。 在该窗口上是一个JList
和一个单击“添加学生”的按钮,当您单击该按钮时,将弹出另一个面板,该面板具有JTextFields
,另一个按钮是“添加学生”。 应该发生的情况是,用户在文本字段中输入信息,然后单击“添加学生”,然后该信息显示在第一个面板的JList
。
这是我的代码。
//This sends you to the other JPanel
private void btnAddStudentActionPerformed(java.awt.event.ActionEvent evt) {
AddStudent st = new AddStudent();
st.setVisible(true);
}
//This is supposed to send the information to the JList
DefaultListModel model = new DefaultListModel();
private void btnAddStudentActionPerformed(java.awt.event.ActionEvent evt) {
setStudentVariables( txtFirstName.getText(), txtLastName.getText(), 12356, 3.55 );
model.addElement( getMyStudent() );
studentBox.setModel(model); //Student box is the variable name for the JList
setVisible(false);
}
public static Student getMyStudent( /*String firstName, String lastName, int id, double gpa*/ ){
Student s = new Student();
s.setStudentFirstName( addFirstName );
s.setStudentLastName( addLastName );
s.setStudentID( addId );
s.setStudentGPA( addGpa );
System.out.println(addFirstName);
return s;
}
public static void setStudentVariables( String firstName, String lastName, int id, double gpa ){
addFirstName = firstName;
addLastName = lastName;
addId = id;
addGpa = gpa;
}
//这是我的学生班
套餐学校;
public class Student {
String studentFirstName, studentLastName;
int studentID;
double studentGPA;
Student(){}
public Student(String studentFirstName, String studentLastName, int studentID, double studentGPA) {
this.studentFirstName = studentFirstName;
this.studentLastName = studentLastName;
this.studentID = studentID;
this.studentGPA = studentGPA;
}
public void setStudentFirstName(String studentFirstName) {
this.studentFirstName = studentFirstName;
}
public String getStudentFirstName() {
return studentFirstName;
}
public void setStudentLastName(String studentLastName) {
this.studentLastName = studentLastName;
}
public String getStudentLastName() {
return studentLastName;
}
public void setStudentID(int studentID) {
this.studentID = studentID;
}
public int getStudentID() {
return studentID;
}
public void setStudentGPA(double studentGPA) {
this.studentGPA = studentGPA;
}
public double getStudentGPA() {
return studentGPA;
}
public String toString() {
return ("First Name:" + this.getStudentFirstName() +
" Last Name " + this.getStudentLastName() +
" ID: " + this.getStudentID() +
" GPA: " + this.getStudentGPA());
}
}
我不清楚您要问的是什么(或者您的问题中是否有一个问题),但似乎您正在追求某种效果? (这正在使用您的学生班,如图所示)
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
public class Main {
public static void main(String[] args) {
final JFrame frame = new JFrame("JList!");
frame.setDefaultCloseOperation(3);
JPanel pane = new JPanel(new BorderLayout());
final JList<Student> studentList = new JList<>();
final DefaultListModel<Student> studentModel = new DefaultListModel<>();
studentList.setModel(studentModel);
pane.add(new JScrollPane(studentList), "Center");
pane.add(new JButton(new AbstractAction("Add student") {
@Override
public void actionPerformed(ActionEvent arg0) {
JPanel pane = new JPanel(new GridLayout(0,2));
pane.add(new JLabel("First name:", JLabel.RIGHT));
JTextField fname = new JTextField();
pane.add(fname);
pane.add(new JLabel("Last name:", JLabel.RIGHT));
JTextField lname = new JTextField();
pane.add(lname);
pane.add(new JLabel("ID:", JLabel.RIGHT));
JTextField sid = new JTextField();
pane.add(sid);
pane.add(new JLabel("GPA:", JLabel.RIGHT));
JTextField gpa = new JTextField();
pane.add(gpa);
int result = JOptionPane.showOptionDialog(null, pane, "Add Student", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, null, null);
if(result == JOptionPane.OK_OPTION){
studentModel.addElement(new Student(fname.getText(), lname.getText(), Integer.parseInt(sid.getText()), Double.parseDouble(gpa.getText())));
studentList.updateUI();
}
}
}), "South");
frame.setContentPane(pane);
frame.setSize(400, 300);
frame.setVisible(true);
}
}
它没有格式化最漂亮的(即完全没有格式化),但是,嘿,它向列表中添加了一个Student,并且来自另一个类(匿名的内部类,但从技术上讲还是另一个类)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.