Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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 Swing编辑用户弹出窗口_Java_Swing - Fatal编程技术网

Java Swing编辑用户弹出窗口

Java Swing编辑用户弹出窗口,java,swing,Java,Swing,我试图创建一个窗口来编辑数据库中的用户信息,但我似乎无法找到一个正确的方法来创建弹出窗口。我希望它显示用户的当前信息,在保存按钮单击时将信息保存到数据库,并在单击取消时关闭窗口-我使用了一个新的JFrame和JPanel来完成此操作,但当我关闭该窗口并打开另一个窗口时,它会显示以前的用户信息 我不确定您需要我的代码的哪些部分,我不想用大量的代码来回答这个问题,所以这是打开窗口的事件,如果还有其他需要显示的内容,请告诉我 employee_list.addMouseListener

我试图创建一个窗口来编辑数据库中的用户信息,但我似乎无法找到一个正确的方法来创建弹出窗口。我希望它显示用户的当前信息,在保存按钮单击时将信息保存到数据库,并在单击取消时关闭窗口-我使用了一个新的JFrame和JPanel来完成此操作,但当我关闭该窗口并打开另一个窗口时,它会显示以前的用户信息

我不确定您需要我的代码的哪些部分,我不想用大量的代码来回答这个问题,所以这是打开窗口的事件,如果还有其他需要显示的内容,请告诉我

        employee_list.addMouseListener(new MouseAdapter() {
        public void mousePressed(MouseEvent me) {
            JTable employee_list =(JTable) me.getSource();
            Point p = me.getPoint();
            int row = employee_list.rowAtPoint(p);
            if (me.getClickCount() == 2) {
                final JFrame editEmployee = new JFrame();

                panel_5.setLayout(null);

                textField = new JTextField();
                textField.setText(userList[row][0].toString());
                textField.setColumns(10);
                textField.setBounds(6, 28, 40, 28);
                panel_5.add(textField);

                textField_1 = new JTextField();
                textField_1.setText(userList[row][1].toString());
                textField_1.setColumns(10);
                textField_1.setBounds(54, 28, 80, 28);
                panel_5.add(textField_1);

                textField_2 = new JTextField();
                textField_2.setText(userList[row][2].toString());
                textField_2.setColumns(10);
                textField_2.setBounds(146, 28, 122, 28);
                panel_5.add(textField_2);

                textField_3 = new JTextField();
                textField_3.setText(userList[row][3].toString());
                textField_3.setColumns(10);
                textField_3.setBounds(280, 28, 122, 28);
                panel_5.add(textField_3);

                textField_4 = new JTextField();
                textField_4.setText(userList[row][5].toString());
                textField_4.setColumns(10);
                textField_4.setBounds(436, 28, 122, 28);
                panel_5.add(textField_4);

                final JCheckBox checkBox_1 = new JCheckBox("");
                checkBox_1.setBounds(407, 33, 17, 18);

                panel_5.add(checkBox_1);

                JLabel label_1 = new JLabel("ID");
                label_1.setBounds(18, 6, 17, 16);
                panel_5.add(label_1);

                JLabel label_2 = new JLabel("Name");
                label_2.setBounds(73, 6, 40, 16);
                panel_5.add(label_2);

                JLabel label_3 = new JLabel("Email");
                label_3.setBounds(171, 6, 55, 16);
                panel_5.add(label_3);

                JLabel label_4 = new JLabel("Do not edit for now");
                label_4.setFont(new Font("SansSerif", Font.PLAIN, 10));
                label_4.setBounds(280, 3, 122, 22);
                panel_5.add(label_4);

                JLabel label_5 = new JLabel("Call?");
                label_5.setBounds(405, 6, 29, 16);
                panel_5.add(label_5);

                JLabel label_6 = new JLabel("Phone number");
                label_6.setBounds(446, 6, 94, 16);
                panel_5.add(label_6);

                JButton cancelNew = new JButton("Cancel");
                cancelNew.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent arg0) {
                        editEmployee.dispose();
                    }
                });
                cancelNew.setBounds(382, 62, 90, 28);
                panel_5.add(cancelNew);

                JButton saveNew = new JButton("Save..");
                saveNew.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent arg0) {
                        List<String> user_arrayNew = new ArrayList<String>();
                        if (!textField.getText().trim().equals("")){
                            user_arrayNew.add(ID.getText().trim());
                        }
                        if (!textField_1.getText().trim().equals("")){
                            user_arrayNew.add(email.getText().trim());
                        }
                        if (!textField_2.getText().trim().equals("")){
                            user_arrayNew.add( pass.getText().trim());
                        }
                        if (!textField_3.getText().trim().equals("")){
                            user_arrayNew.add(name.getText().trim());
                        }
                        if(checkBox_1.isSelected()){
                            user_arrayNew.add("yes");
                            if (!textField_4.getText().trim().equals("")){
                            user_arrayNew.add(phone.getText().trim());
                            }
                        }
                        if(!user_arrayNew.isEmpty()){
                        if(!checkBox_1.isSelected()){
                            user_arrayNew.add("no");
                            user_arrayNew.add("N/A");
                        }}
                        if(!user_arrayNew.isEmpty()){
                            String[] userNew = user_arrayNew.toArray(new String[6]);
                            String input = userNew[2];
                             String hashpassNew = null;
                            try {
                                hashpassNew = Lottery.hashpass.sha1(input);
                            } catch (NoSuchAlgorithmException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            }
                             userNew[2] = hashpassNew;
                                Lottery.employees.editEmployeeMysql(userNew);
                            }
                    }
                });
                saveNew.setBounds(468, 62, 90, 28);
                panel_5.add(saveNew);

                System.out.println("test"+row);
                editEmployee.setSize(564, 100);
                editEmployee.getContentPane().add(panel_5);
                centerWithinScreen(editEmployee);
                editEmployee.setFocusable(true);
                editEmployee.setUndecorated(true);
                editEmployee.setVisible(true);
                }
        }
    });
employee\u list.addMouseListener(新的MouseAdapter(){
public void mousePressed(MouseEvent me){
JTable employee_list=(JTable)me.getSource();
点p=me.getPoint();
int row=员工列表。rowAtPoint(p);
如果(me.getClickCount()==2){
最终JFrame editEmployee=新JFrame();
面板5.设置布局(空);
textField=新的JTextField();
textField.setText(userList[row][0].toString());
textField.setColumns(10);
textField.setBounds(6,28,40,28);
面板5.添加(文本字段);
textField_1=新的JTextField();
textField_1.setText(userList[row][1].toString());
textField_1.设置列(10);
textField_1.立根(54,28,80,28);
面板5.添加(文本字段1);
textField_2=新的JTextField();
textField_2.setText(userList[row][2].toString());
textField_2.设置列(10);
textField_2.立根(146,28,122,28);
面板5.添加(文本字段2);
textField_3=新的JTextField();
textField_3.setText(userList[row][3].toString());
textField_3.设置列(10);
textField_3.立根(280,28,122,28);
面板5.添加(文本字段3);
textField_4=新的JTextField();
textField_4.setText(userList[row][5].toString());
textField_4.设置列(10);
textField_4.立根(436,28,122,28);
面板5.添加(文本字段4);
最终JCheckBox复选框_1=新JCheckBox(“”);
复选框_1.立根(407,33,17,18);
面板5.添加(复选框1);
JLabel label_1=新的JLabel(“ID”);
标签1.立根(18,6,17,16);
面板5.添加(标签1);
JLabel label_2=新JLabel(“名称”);
标签2.立根(73,6,40,16);
面板5.添加(标签2);
JLabel label_3=新的JLabel(“电子邮件”);
标签3.立根(171,6,55,16);
面板5.添加(标签3);
JLabel label_4=新的JLabel(“暂时不要编辑”);
标签_4.setFont(新字体(“SansSerif”,Font.PLAIN,10));
标签4.立根(280、3、122、22);
面板5.添加(标签4);
JLabel label_5=新的JLabel(“呼叫”);
标签5.立根(405,6,29,16);
面板5.添加(标签5);
JLabel label_6=新的JLabel(“电话号码”);
标签6.立根(446,6,94,16);
面板5.添加(标签6);
JButton cancelNew=新JButton(“取消”);
cancelNew.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件arg0){
editEmployee.dispose();
}
});
取消新的.挫折(382,62,90,28);
面板5.添加(新);
JButton saveNew=新JButton(“保存…”);
saveNew.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件arg0){
列表用户_arrayNew=new ArrayList();
如果(!textField.getText().trim()等于(“”){
用户_arrayNew.add(ID.getText().trim());
}
如果(!textField_1.getText().trim()等于(“”){
用户_arrayNew.add(email.getText().trim());
}
如果(!textField_2.getText().trim()等于(“”){
用户_arrayNew.add(pass.getText().trim());
}
如果(!textField_3.getText().trim()等于(“”){
user_arrayNew.add(name.getText().trim());
}
如果(复选框_1.isSelected()){
用户_arrayNew.add(“是”);
如果(!textField_4.getText().trim()等于(“”){
用户_arrayNew.add(phone.getText().trim());
}
}
如果(!user_arrayNew.isEmpty()){
如果(!checkBox_1.isSelected()){
用户_arrayNew.add(“否”);
用户_arrayNew.add(“不适用”);
}}
如果(!user_arrayNew.isEmpty()){
String[]userNew=user_arrayNew.toArray(新字符串[6]);
字符串输入=userNew[2];
字符串hashpassNew=null;
试一试{
hashpassNew=lotch.hashpass.sha1(输入);
}捕获(无算法异常e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
userNew[2]=hashpassNew;
彩票.employees.editEmployeeMysql(userNew);
employee_list.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent me) {
        JTable employee_list =(JTable) me.getSource();
        Point p = me.getPoint();
        final int row = employee_list.rowAtPoint(p);
        if (me.getClickCount() == 2) {
            final JFrame editEmployee = new JFrame();

            panel_5.setLayout(null);

            textField = new JTextField();
            textField.setText(userList[row][0].toString());
            textField.setColumns(10);
            textField.setBounds(6, 28, 40, 28);
            panel_5.add(textField);

            textField_1 = new JTextField();
            textField_1.setText(userList[row][1].toString());
            textField_1.setEditable(false);
            textField_1.setColumns(10);
            textField_1.setBounds(54, 28, 80, 28);
            panel_5.add(textField_1);

            textField_2 = new JTextField();
            textField_2.setText(userList[row][2].toString());
            textField_2.setColumns(10);
            textField_2.setBounds(146, 28, 122, 28);
            panel_5.add(textField_2);

            textField_3 = new JTextField();
            final String oldPass = userList[row][3].toString();
            textField_3.setColumns(10);
            textField_3.setBounds(280, 28, 122, 28);
            panel_5.add(textField_3);

            textField_4 = new JTextField();
            textField_4.setText(userList[row][5].toString());
            textField_4.setColumns(10);
            textField_4.setBounds(436, 28, 122, 28);
            panel_5.add(textField_4);

            final JCheckBox checkBox_1 = new JCheckBox("");
            checkBox_1.setBounds(407, 33, 17, 18);

            panel_5.add(checkBox_1);

            JLabel label_1 = new JLabel("ID");
            label_1.setBounds(18, 6, 17, 16);
            panel_5.add(label_1);

            JLabel label_2 = new JLabel("Name");
            label_2.setBounds(73, 6, 40, 16);
            panel_5.add(label_2);

            JLabel label_3 = new JLabel("Email");
            label_3.setBounds(171, 6, 55, 16);
            panel_5.add(label_3);

            JLabel label_4 = new JLabel("New Password");
            label_4.setBounds(280, 3, 122, 10);
            panel_5.add(label_4);

            JLabel optional = new JLabel("Blank = no change");
            optional.setFont(new Font("SansSerif", Font.PLAIN, 10));
            optional.setBounds(280, 3, 122, 30);
            panel_5.add(optional);

            JLabel label_5 = new JLabel("Call?");
            label_5.setBounds(405, 6, 29, 16);
            panel_5.add(label_5);

            JLabel label_6 = new JLabel("Phone number");
            label_6.setBounds(446, 6, 94, 16);
            panel_5.add(label_6);

            JButton cancelNew = new JButton("Cancel");
            cancelNew.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    panel_5.removeAll();
                    editEmployee.dispose();
                }
            });
            cancelNew.setBounds(382, 62, 90, 28);
            panel_5.add(cancelNew);

            JButton saveNew = new JButton("Save..");
            saveNew.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    List<String> user_arrayNew = new ArrayList<String>();
                    if (!textField.getText().trim().equals("")){
                        user_arrayNew.add(textField.getText().trim());
                    }
                    if (!textField_1.getText().trim().equals("")){
                        user_arrayNew.add(textField_1.getText().trim());
                    }
                    if (!textField_2.getText().trim().equals("")){
                        user_arrayNew.add(textField_2.getText().trim());
                    }
                    if (!textField_3.getText().trim().equals("")){
                        user_arrayNew.add(textField_3.getText().trim());
                    }else{
                        user_arrayNew.add(oldPass);
                    }
                    if(checkBox_1.isSelected()){
                        user_arrayNew.add("yes");
                        if (!textField_4.getText().trim().equals("")){
                        user_arrayNew.add(textField_4.getText().trim());
                        }
                    }else{
                        user_arrayNew.add("no");
                        user_arrayNew.add("N/A");
                    }
                    if(!user_arrayNew.isEmpty()){
                        String[] userNew = user_arrayNew.toArray(new String[6]);
                        if (!textField_3.getText().trim().equals("")){
                        String input = userNew[3];
                         String hashpassNew = null;
                        try {
                            hashpassNew = Lottery.hashpass.sha1(input);
                        } catch (NoSuchAlgorithmException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                         userNew[3] = hashpassNew;
                        }else{
                            userNew[3] = oldPass;
                        }
                            Lottery.employees.editEmployeeMysql(userNew);
                            panel_5.removeAll();
                            editEmployee.dispose();
                        }
                }
            });
            saveNew.setBounds(468, 62, 90, 28);
            panel_5.add(saveNew);

            panel_5.validate();
            panel_5.repaint();

            System.out.println("test"+row);
            editEmployee.setSize(564, 100);
            editEmployee.getContentPane().add(panel_5);
            centerWithinScreen(editEmployee);
            editEmployee.setFocusable(true);
            editEmployee.setUndecorated(true);
            editEmployee.setVisible(true);
            }
    }
});
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;

import javax.swing.*;

public class FooGui2 {
   private static void createAndShowGui() {
      DataPanel dataPanel = new DataPanel();
      dataPanel.setEnabled(false);
      dataPanel.setId("10x");
      dataPanel.setName("Mickey Mouse");
      dataPanel.setEmail("MMouse@GMail.com");
      dataPanel.setCall(false);
      dataPanel.setPhone("555-111-1212");
      JPanel buttonPanel = new JPanel();
      buttonPanel.add(new JButton(new UpdateDataAction(dataPanel, "Update",
            KeyEvent.VK_U)));

      JFrame frame = new JFrame("Parent GUI");
      frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
      frame.add(dataPanel.getMainPanel(), BorderLayout.CENTER);
      frame.add(buttonPanel, BorderLayout.SOUTH);
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}

class UpdateDataAction extends AbstractAction {
   private DataPanel parentDataPanel;
   private DataPanel childDataPanel;

   public UpdateDataAction(DataPanel dataPanel, String name, int mnemonic) {
      super(name);
      putValue(MNEMONIC_KEY, mnemonic);
      this.parentDataPanel = dataPanel;
   }

   @Override
   public void actionPerformed(ActionEvent evt) {
      if (childDataPanel == null) {
         childDataPanel = new DataPanel();
      }

      childDataPanel.setId(parentDataPanel.getId());
      childDataPanel.setName(parentDataPanel.getName());
      childDataPanel.setEmail(parentDataPanel.getEmail());
      childDataPanel.setCall(parentDataPanel.isCall());
      childDataPanel.setPhone(parentDataPanel.getPhone());

      int result = JOptionPane.showConfirmDialog(
            parentDataPanel.getMainPanel(), childDataPanel.getMainPanel(),
            "Update Information JOptionPane", JOptionPane.OK_CANCEL_OPTION,
            JOptionPane.PLAIN_MESSAGE);

      if (result == JOptionPane.OK_OPTION) {
         // !! if opted to change the parent data, then do it!
         parentDataPanel.setId(childDataPanel.getId());
         parentDataPanel.setName(childDataPanel.getName());
         parentDataPanel.setEmail(childDataPanel.getEmail());
         parentDataPanel.setCall(childDataPanel.isCall());
         parentDataPanel.setPhone(childDataPanel.getPhone());
      }
   }
}

class DataPanel {
   private static final int I_GAP = 5;
   private static final Insets INSETS = new Insets(I_GAP, I_GAP, I_GAP, I_GAP);
   private JPanel mainPanel = new JPanel();
   private JTextField idField = new JTextField(4);
   private JTextField nameField = new JTextField(10);
   private JTextField emailField = new JTextField(15);
   private JCheckBox callCheckBox = new JCheckBox();
   private JTextField phoneField = new JTextField(15);
   private JComponent[] components = { idField, nameField, emailField,
         callCheckBox, phoneField };

   public DataPanel() {
      mainPanel.setLayout(new GridBagLayout());
      addLabelComponent("ID", idField, 0, -1f);
      addLabelComponent("Name", nameField, 1, -1f);
      addLabelComponent("EMail", emailField, 2, -1f);
      addLabelComponent("Call", callCheckBox, 3, -1f);
      addLabelComponent("Phone", phoneField, 4, -1f);
   }

   private void addLabelComponent(String labelText, JComponent jComp,
         int xPosition, float labelPoints) {
      JLabel label = new JLabel(labelText, SwingConstants.CENTER);
      if (labelPoints > 0) {
         label.setFont(label.getFont().deriveFont(labelPoints));
      }
      // label position
      GridBagConstraints gbc = new GridBagConstraints();
      gbc.gridx = xPosition;
      gbc.gridy = 0;
      gbc.anchor = GridBagConstraints.CENTER;
      gbc.fill = GridBagConstraints.BOTH;
      gbc.gridheight = 1;
      gbc.gridwidth = 1;
      gbc.weightx = 1.0;
      gbc.weighty = 1.0;
      gbc.insets = INSETS;
      mainPanel.add(label, gbc);

      // component position
      gbc.gridy = 1;
      gbc.fill = GridBagConstraints.NONE;
      mainPanel.add(jComp, gbc);
   }

   public void setId(String id) {
      idField.setText(id);
   }

   public String getId() {
      return idField.getText();
   }

   public void setName(String name) {
      nameField.setText(name);
   }

   public String getName() {
      return nameField.getText();
   }

   public void setEmail(String email) {
      emailField.setText(email);
   }

   public String getEmail() {
      return emailField.getText();
   }

   public void setCall(boolean call) {
      callCheckBox.setSelected(call);
   }

   public boolean isCall() {
      return callCheckBox.isSelected();
   }

   public void setPhone(String phone) {
      phoneField.setText(phone);
   }

   public String getPhone() {
      return phoneField.getText();
   }

   public void setEnabled(boolean enabled) {
      mainPanel.setEnabled(enabled);
      for (JComponent component : components) {
         component.setFocusable(false);
         component.setEnabled(false);
      }
   }

   public JComponent getMainPanel() {
      return mainPanel;
   }

}