Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JTable在新窗口中填充JTextFields_Java_Swing_Jtable - Fatal编程技术网

Java 如何从JTable在新窗口中填充JTextFields

Java 如何从JTable在新窗口中填充JTextFields,java,swing,jtable,Java,Swing,Jtable,我用JTable创建了一个窗口,其中包含一些用户文本文件中的值。 此外,还有用于创建、编辑和删除用户的按钮。 我想为创建和编辑按钮使用并打开同一个窗口,但如果单击编辑按钮,则窗口应填充来自JTable的higlight(clicked)user值 //PatientWindow.java private void initActions() { btnCreate.addActionListener(new ActionListener() { @Ov

我用JTable创建了一个窗口,其中包含一些用户文本文件中的值。 此外,还有用于创建、编辑和删除用户的按钮。 我想为创建和编辑按钮使用并打开同一个窗口,但如果单击编辑按钮,则窗口应填充来自JTable的higlight(clicked)user值

//PatientWindow.java

private void initActions() {

        btnCreate.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                CreateEditPatientWindow createEditPatientWindow = new CreateEditPatientWindow();
                createEditPatientWindow.setVisible(true);
            }
        });

        btnUpdate.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int row = tblPatients.getSelectedRow();
                if(row == -1)
                {
                    JOptionPane.showMessageDialog(null, "You must select row for update", "Info", JOptionPane.WARNING_MESSAGE);
                }
                else 
                {
                    DefaultTableModel model = (DefaultTableModel)tblPatients.getModel();
                    String username = model.getValueAt(row, 6).toString();
                    UserModel userSearch = UsersClass.findUser(username);                   


                    if(userSearch != null)
                    {
                        //System.out.println("USER FOUND!!!" + username);   
                        //PatientModel patientModel = patient;
                        //patientModel.setUsername(username);

                        CreateEditPatientWindow createEditPatientWindow = new CreateEditPatientWindow(USE VALUES OF SELECTED USER);
                        createEditPatientWindow.setVisible(true);
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(null, "User not found", "Info", JOptionPane.ERROR_MESSAGE);
                    }
                }
            }
        });
    }
private void initGUI() {

        tbToolBar = new JToolBar();

        btnCreate = new JButton("Create");
        btnUpdate = new JButton("Update");
        btnDelete = new JButton("Delete");

        tbToolBar.add(btnCreate);
        tbToolBar.add(btnUpdate);
        tbToolBar.add(btnDelete);

        spScroll = new JScrollPane();

        ArrayList<PatientModel> patientsList = UsersClass.getPatients();
        String[] header = new String[] {
                "Name", 
                "Lastname", 
                "UMCN", 
                "Gender", 
                "Adress", 
                "Phone number", 
                "Username",
                "Password",
                //"User type",
                "Insurance number",
                "Insurance category",
                "Expiry date"};
        Object[][] body = new Object[patientsList.size()][header.length];
        int a = 0;
        for(int i = 0; i < patientsList.size(); i++) 
        {
            PatientModel patientsData = patientsList.get(i);
            body[i][0] = patientsData.getName();
            body[i][1] = patientsData.getLastname();
            body[i][2] = patientsData.getUmcn();
            body[i][3] = patientsData.getGender();
            body[i][4] = patientsData.getAdress();
            body[i][5] = patientsData.getPhoneNumber();
            body[i][6] = patientsData.getUsername();
            body[i][7] = patientsData.getPassword();
            //body[i][8] = patientsData.getUserType();
            body[i][8] = patientsData.getHealthInsuranceNumber();
            body[i][9] = patientsData.getInsuranceCategory();
            body[i][10] = patientsData.getExpiryDate();
        }

        DefaultTableModel tableModel = new DefaultTableModel(body,header);
        tblPatients = new JTable(tableModel);
        //tblPatients.setRowSelectionAllowed(true);
        //tblPatients.setColumnSelectionAllowed(true);
        //tblPatients.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tblPatients.setDefaultEditor(Object.class, null);

        JScrollPane tableScroll = new JScrollPane(tblPatients);
        add(spScroll);
        add(tbToolBar, BorderLayout.NORTH);
        add(tableScroll, BorderLayout.CENTER);

    }



//CreateEditPatientWindow.java

private void initGUI() {
        MigLayout mig = new MigLayout("wrap 2", "[][]", "[]10[][]10[]");
        setLayout(mig);     

        lblName = new JLabel("Name");
        txtName = new JTextField(20);       

        lblLastname = new JLabel("Lastname");
        txtLastname = new JTextField(20);

        lblUMCN = new JLabel("Unique Master Citizen Number");
        txtUMCN = new JTextField(20);

        lblGender = new JLabel("Gender");
        cbGender = new JComboBox();
        cbGender.addItem("Male");
        cbGender.addItem("Female");

        lblAdress = new JLabel("Adress");
        txtAdress = new JTextField(20);

        lblPhoneNumber = new JLabel("Phone number");
        txtPhoneNumber = new JTextField(20);

        lblUsername = new JLabel("Username");
        txtUsername = new JTextField(20);

        lblPassword = new JLabel("Password");
        txtPassword = new JTextField(20);

        lblHealthInsuranceNumber = new JLabel("Health insurance number");
        txtHealthInsuranceNumber = new JTextField(20);

        lblExpiryDate = new JLabel("Expiry date");
        txtExpiryDate = new JTextField(20);

        lblInsuranceCategory = new JLabel("Insurance category");
        cbInsuranceCategory = new JComboBox();
        cbInsuranceCategory.addItem("1");
        cbInsuranceCategory.addItem("2");
        cbInsuranceCategory.addItem("3");



        btnConfirm = new JButton("Confirm");

        add(lblName);
        add(txtName);

        add(lblLastname);
        add(txtLastname);

        add(lblUMCN);
        add(txtUMCN);

        add(lblGender);
        add(cbGender);

        add(lblAdress);
        add(txtAdress);

        add(lblPhoneNumber);
        add(txtPhoneNumber);

        add(lblUsername);
        add(txtUsername);

        add(lblPassword);
        add(txtPassword);

        add(lblHealthInsuranceNumber);
        add(txtHealthInsuranceNumber);

        add(lblExpiryDate);
        add(txtExpiryDate);

        add(lblInsuranceCategory);
        add(cbInsuranceCategory);

        add(btnConfirm);    
    }
//PatientWindow.java
私有void initActions(){
btnCreate.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
CreateEditPatientTwinDow CreateEditPatientTwinDow=新建CreateEditPatientTwinDow();
CreateEditTwinDow.setVisible(true);
}
});
btnUpdate.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
int row=tblPatients.getSelectedRow();
如果(行==-1)
{
JOptionPane.showMessageDialog(null,“您必须选择要更新的行”,“信息”,JOptionPane.WARNING\u消息);
}
其他的
{
DefaultTableModel=(DefaultTableModel)tblPatients.getModel();
字符串username=model.getValueAt(第6行).toString();
UserModel userSearch=UsersClass.findUser(用户名);
if(userSearch!=null)
{
//System.out.println(“用户找到!!!”+用户名);
//PatientModel PatientModel=患者;
//patientModel.setUsername(用户名);
CreateEditPatientTwinDow CreateEditPatientTwinDow=新建CreateEditPatientTwinDow(使用所选用户的值);
CreateEditTwinDow.setVisible(true);
}
其他的
{
JOptionPane.showMessageDialog(null,“未找到用户”,“信息”,JOptionPane.ERROR\u消息);
}
}
}
});
}
私有void initGUI(){
tbToolBar=新的JToolBar();
btnCreate=newjbutton(“创建”);
btnUpdate=新的JButton(“更新”);
btnDelete=新的JButton(“删除”);
tbToolBar.add(btnCreate);
tbToolBar.add(btnUpdate);
tbToolBar.add(btnDelete);
spScroll=新的JScrollPane();
ArrayList patientsList=UsersClass.getPatients();
字符串[]头=新字符串[]{
“姓名”,
“姓氏”,
“UMCN”,
“性别”,
“地址”,
“电话号码”,
“用户名”,
“密码”,
//“用户类型”,
“保险编号”,
“保险类别”,
“有效期”};
Object[][]body=新对象[patientsList.size()][header.length];
int a=0;
对于(int i=0;ipublic class UsersClass {

    public static ArrayList<UserModel> users = getUsers();
    public static ArrayList<PatientModel> patients = getPatients();


    public static ArrayList<UserModel> getUsers()
    {
        ArrayList<UserModel> usersList = new ArrayList<UserModel>();
        ArrayList<PatientModel> patientsList = getPatients();
        ArrayList<NurseModel> nursesList = getNurses();
        ArrayList<DoctorModel> doctorsList = getDoctors();

        usersList.addAll(patientsList);
        usersList.addAll(nursesList);
        usersList.addAll(doctorsList);

        return usersList;
    }


    public static ArrayList<PatientModel> getPatients()
    {
        ArrayList<PatientModel> patientsList = new ArrayList<PatientModel>();
        try
        {
            File patientTextFile = new File("src/txt/patients");
            BufferedReader br = new BufferedReader(new FileReader(patientTextFile));
            String line = null;
            while((line = br.readLine()) != null)
            {
                String[] split = line.split("\\|");
                String name = split[0];
                String lastname = split[1];
                String umcn = split[2];
                String gender = split[3];
                String adress = split[4];
                String phoneNumber = split[5];
                String username = split[6];
                String password = split[7];
                String userType = split[8];
                int healthInsuranceNumber = Integer.parseInt(split[9]);
                String expiryDate = split[10];
                int insuranceCategory = Integer.parseInt(split[11]);

                PatientModel newPatient = new PatientModel(
                        name, 
                        lastname, 
                        umcn, 
                        gender, 
                        adress, 
                        phoneNumber,
                        username,
                        password,
                        userType,
                        healthInsuranceNumber,
                        expiryDate,
                        insuranceCategory);
                patientsList.add(newPatient);               
            }
        } 
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return patientsList;
    }


    public static ArrayList<NurseModel> getNurses()
    {
        ArrayList<NurseModel> nursesList = new ArrayList<NurseModel>();
        try
        {
            File nurseTextFile = new File("src/txt/nurses");
            BufferedReader br = new BufferedReader(new FileReader(nurseTextFile));
            String line = null;
            while((line = br.readLine()) != null)
            {
                String[] split = line.split("\\|");
                String name = split[0];
                String lastname = split[1];
                String umcn = split[2];
                String gender = split[3];
                String adress = split[4];
                String phoneNumber = split[5];
                String username = split[6];
                String password = split[7];
                String userType = split[8];
                double salary = Double.parseDouble(split[9]);
                String service = split[10];
                NurseModel newNurse = new NurseModel(
                        name, 
                        lastname, 
                        umcn, 
                        gender, 
                        adress, 
                        phoneNumber,
                        username,
                        password,
                        userType,
                        salary,
                        service);
                nursesList.add(newNurse);               
            }
        } 
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return nursesList;
    }


    public static ArrayList<DoctorModel> getDoctors()
    {
        ArrayList<DoctorModel> doctorsList = new ArrayList<DoctorModel>();
        try
        {
            File doctorTextFile = new File("src/txt/doctors");
            BufferedReader br = new BufferedReader(new FileReader(doctorTextFile));
            String line = null;
            while((line = br.readLine()) != null)
            {
                String[] split = line.split("\\|");
                String name = split[0];
                String lastname = split[1];
                String umcn = split[2];
                String gender = split[3];
                String adress = split[4];
                String phoneNumber = split[5];
                String username = split[6];
                String password = split[7];
                String userType = split[8];
                double salary = Double.parseDouble(split[9]);
                String specialization = split[10];
                String service = split[11];
                DoctorModel newDoctor = new DoctorModel(
                        name, 
                        lastname, 
                        umcn, 
                        gender, 
                        adress, 
                        phoneNumber,
                        username,
                        password,
                        userType,
                        salary,
                        specialization,
                        service);
                doctorsList.add(newDoctor);             
            }
        } 
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return doctorsList;
    }   


    public static UserModel findUser(String username)
    {
        for(UserModel user : users)
        {
            if(user.getUsername().equals(username))
            {
                return user;
            }
        }
        return null;
    }

}