Sie sind auf Seite 1von 3

/* * To change this template, choose Tools | Templates * and open the template in the editor.

*/ package encoded; /** * * @author admin */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class aa extends JFrame implements ActionListener { private static JLabel private static JLabel private static JLabel private static JLabel private static JTextField private static JTextField private static JSpinner erModel(3, 1, 25, 1) ); private static JRadioButton private static JRadioButton private static JButton ); private static JPanel private static ButtonGroup msgLabel keyLabel actionLabel resultLabel msgTextField resultTextField keySpinner encryptRadio decryptRadio actionButton panel group = = = = = = = new new new new new new new JLabel("Message: "); JLabel("Key: "); JLabel("Action: "); JLabel("Result: "); JTextField(20); JTextField(20); JSpinner( new SpinnerNumb

= new JRadioButton("Encrypt"); = new JRadioButton("Decrypt"); = new JButton("Encrypt Message" = new JPanel(); = new ButtonGroup();

public static void main(String[] args) { new aa(); } public aa() { this.setSize(310, 192); this.setTitle("Caesar Cipher"); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setResizable(false); panel.setLayout(new GridBagLayout()); addComponent(panel, msgLabel, 0, 0, 1, 1, GridBagConstraints.LINE_START) ; addComponent(panel, msgTextField, 1, 0, 2, 1, GridBagConstraints.LINE_ST ART); addComponent(panel, keyLabel, 0, 1, 1, 1, GridBagConstraints.LINE_START) ; addComponent(panel, keySpinner, 1, 1, 1, 1, GridBagConstraints.LINE_STAR T); addComponent(panel, actionLabel, 0, 2, 1, 1, GridBagConstraints.LINE_STA RT); group.add(encryptRadio); group.add(decryptRadio); addComponent(panel, encryptRadio, 1, 2, 1, 1, GridBagConstraints.LINE_ST ART);

addComponent(panel, decryptRadio, 2, 2, 1, 1, GridBagConstraints.LINE_ST ART); encryptRadio.setSelected(true); encryptRadio.addActionListener(this); decryptRadio.addActionListener(this); addComponent(panel, resultLabel, 0, 3, 1, 1, GridBagConstraints.LINE_STA RT); addComponent(panel, resultTextField, 1, 3, 2, 1, GridBagConstraints.LINE _START); resultTextField.setEditable(false); addComponent(panel, actionButton, 1, 4, 1, 1, GridBagConstraints.CENTER) ; actionButton.addActionListener(this); this.add(panel); this.setVisible(true); } private void addComponent(JPanel p, JComponent c, int x, int y, int width, i nt height, int align) { GridBagConstraints gc = new GridBagConstraints(); gc.gridx = x; gc.gridy = y; gc.gridwidth = width; gc.gridheight = height; gc.weightx = 100.0; gc.weighty = 100.0; gc.insets = new Insets(5, 5, 5, 5); gc.anchor = align; gc.fill = GridBagConstraints.NONE; p.add(c, gc); } private void encryptMessage(String msg, int k) { String result = ""; resultTextField.setText(""); for (int i = 0; i < msg.length(); i++) result += encryptChar(msg.charAt(i), k); resultTextField.setText(result); } private char encryptChar(char c, int k) { if (Character.isLetter(c)) return (char) ('A' + (c - 'A' + k) % 26); else return c; } public void actionPerformed(ActionEvent e) { if (e.getSource() == encryptRadio) actionButton.setText("Encrypt Message"); if (e.getSource() == decryptRadio) actionButton.setText("Decrypt Message"); if (e.getSource() == actionButton) { String str = msgTextField.getText(); int k = (Integer) keySpinner.getValue();

int key = 0; String message = ""; if (str.equals("")) { JOptionPane.showMessageDialog(null, "Please enter a mess age!", "Error!", JOptionPane.ERROR_MESSAGE); msgTextField.requestFocus(); return; } message = str.toUpperCase(); if (encryptRadio.isSelected()) key = k; else key = 26 - k; encryptMessage(message, key); } } }