1 public class MainFrame { 2 3 private JPanel mainPanel; 4 5 private JLabel passWordLable; 6 7 private JPasswordField passwordField; 8 9 private JLabel keyFileLable; 10 11 private JTextField keyFileField; 12 13 private JButton fileChooserButton; 14 15 private JLabel resultLabel; 16 17 private JTextArea resultTextField; 18 19 private JButton genrateKeysButton; 20 21 private JButton encryptButton; 22 23 public static void main(String args[]) { 24 new MainFrame(); 25 26 } 27 28 public MainFrame() { 29 initView(); 30 initLinsteners(); 31 } 32 33 private void initView() { 34 Font lablefont = new Font(Font.SANS_SERIF, Font.PLAIN, 18); 35 Font buttonFont = new Font("黑体", Font.PLAIN, 15); 36 JFrame jf = new JFrame("Date Analysis Encryption Tool"); // 实例化一个JFrame对象 37 jf.setVisible(true); // 设置窗体可视 38 jf.setSize(600, 300); // 设置窗体大小 39 jf.setFont(buttonFont); 40 jf.setLocationRelativeTo(null); 41 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 42 jf.setResizable(false); 43 44 mainPanel = new JPanel(); 45 46 passWordLable = new JLabel("Password:"); 47 passWordLable.setFont(lablefont); 48 passWordLable.setPreferredSize(new Dimension(120, 40)); 49 50 mainPanel.add(passWordLable); 51 52 passwordField = new JPasswordField(); 53 passwordField.setFont(lablefont); 54 passwordField.setPreferredSize(new Dimension(400, 40)); 55 mainPanel.add(passwordField); 56 57 keyFileLable = new JLabel("Key File:"); 58 keyFileLable.setFont(lablefont); 59 keyFileLable.setPreferredSize(new Dimension(120, 40)); 60 mainPanel.add(keyFileLable); 61 62 keyFileField = new JTextField(); 63 keyFileField.setFont(lablefont); 64 keyFileField.setEditable(false); 65 keyFileField.setPreferredSize(new Dimension(295, 40)); 66 mainPanel.add(keyFileField); 67 68 fileChooserButton = new JButton("Choose key..."); 69 fileChooserButton.setFont(buttonFont); 70 fileChooserButton.setPreferredSize(new Dimension(100, 40)); 71 fileChooserButton.setContentAreaFilled(false); 72 fileChooserButton.setMargin(new Insets(0, 0, 0, 0)); 73 fileChooserButton.setBorder(BorderFactory.createEtchedBorder()); 74 75 mainPanel.add(fileChooserButton); 76 77 resultLabel = new JLabel("Result:"); 78 resultLabel.setFont(lablefont); 79 resultLabel.setPreferredSize(new Dimension(120, 40)); 80 81 mainPanel.add(resultLabel); 82 83 resultTextField = new JTextArea(50, 100); 84 resultTextField.setLineWrap(true); 85 JScrollPane scrollPane = new JScrollPane(resultTextField); 86 scrollPane.setPreferredSize(new Dimension(400, 100)); 87 mainPanel.add(scrollPane); 88 89 JPanel bottomButtonPanel = new JPanel(); 90 bottomButtonPanel.setPreferredSize(new Dimension(535, 60)); 91 bottomButtonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT)); 92 93 genrateKeysButton = new JButton("Generate Keys"); 94 genrateKeysButton.setFont(buttonFont); 95 genrateKeysButton.setPreferredSize(new Dimension(150, 40)); 96 genrateKeysButton.setContentAreaFilled(false); 97 genrateKeysButton.setMargin(new Insets(0, 0, 0, 0)); 98 genrateKeysButton.setBorder(BorderFactory.createEtchedBorder()); 99 100 bottomButtonPanel.add(genrateKeysButton); 101 102 encryptButton = new JButton("Encrypt"); 103 encryptButton.setFont(buttonFont); 104 encryptButton.setPreferredSize(new Dimension(150, 40)); 105 encryptButton.setContentAreaFilled(true); 106 encryptButton.setMargin(new Insets(0, 0, 0, 0)); 107 encryptButton.setBorder(BorderFactory.createEtchedBorder()); 108 109 bottomButtonPanel.add(encryptButton); 110 mainPanel.add(bottomButtonPanel); 111 112 jf.setContentPane(mainPanel); 113 jf.setVisible(true); 114 } 115 116 private void initLinsteners() { 117 fileChooserButton.addActionListener(new FileChooserListener()); 118 genrateKeysButton.addActionListener(new GenerateKeysListener()); 119 encryptButton.addActionListener(new EncryptListener()); 120 } 121 122 private class FileChooserListener implements ActionListener { 123 @Override 124 public void actionPerformed(ActionEvent e) { 125 JFileChooser jfc = new JFileChooser(); 126 jfc.setFileSelectionMode(JFileChooser.FILES_ONLY); 127 jfc.setFileFilter(new FileNameExtensionFilter("Secerty Key Files", "key")); 128 jfc.showDialog(new JLabel(), "选择"); 129 File file = jfc.getSelectedFile(); 130 if (file.isFile()) { 131 keyFileField.setText(jfc.getSelectedFile().getAbsolutePath()); 132 } 133 } 134 } 135 136 private class GenerateKeysListener implements ActionListener { 137 @Override 138 public void actionPerformed(ActionEvent e) { 139 140 } 141 } 142 143 private class EncryptListener implements ActionListener { 144 @Override 145 public void actionPerformed(ActionEvent e) { 146 String password = new String(passwordField.getPassword()); 147 if (password == null || password.trim().equals("")) { 148 JOptionPane.showMessageDialog(null, "Please input your password", "Error", JOptionPane.ERROR_MESSAGE); 149 return; 150 } 151 System.out.println("Password======>" + password); 152 String keyFilePath = keyFileField.getText(); 153 if (keyFilePath == null || keyFilePath.trim().equals("")) { 154 JOptionPane.showMessageDialog(null, "Please select the key file", "Error", JOptionPane.ERROR_MESSAGE); 155 return; 156 } 157 System.out.println("keyFilePath======>" + keyFilePath); 158 } 159 } 160 }