Skip to content
Snippets Groups Projects
Commit b82bb0a5 authored by Eckl, Máté's avatar Eckl, Máté
Browse files

7. labor összes feladat kész

A feladatok egy részét szerintem sokkal egyszerűbben is meg lehetett
volna csinálni, de legalább már tudjuk mi az, hogy focusListener.Én
ebben az esetben tuti nem így csináltam volna.
parent 9d8453a5
No related branches found
No related tags found
No related merge requests found
......@@ -17,4 +17,20 @@ public class CaesarCode {
}
return s;
}
public static String caesarDeCode(String input, char offset)
{
String s = "";
input=input.toUpperCase();
offset=Character.toUpperCase(offset);
int numericOffset=(int)offset - (int)'A';
int len = input.length();
for(int x = 0; x < len; x++){
char c = (char)(input.charAt(x) - numericOffset);
if (c < 'A')
s += (char)(input.charAt(x) + (26-numericOffset));
else
s += (char)(input.charAt(x) - numericOffset);
}
return s;
}
}
......@@ -6,12 +6,16 @@ import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class caesarFrame extends JFrame{
......@@ -20,6 +24,8 @@ public class caesarFrame extends JFrame{
private final JTextField f1, f2;
private final JButton btn;
private boolean decode=false;
public caesarFrame() throws HeadlessException {
super("SwingLab");
// this.setTitle("SwingLab");
......@@ -37,7 +43,11 @@ public class caesarFrame extends JFrame{
for(int i=(int)'A';i<=(int)'Z';i++)
chars[i-(int)'A']=(char)i;
jcb=new JComboBox(chars); p1.add(jcb);
f1=new JTextField(20); f1.setEnabled(true); p1.add(f1);
f1=new JTextField(20);
f1.addFocusListener(new FocuseLoseListener(false));
f1.setEnabled(true);
f1.getDocument().addDocumentListener(new InputKeyFieldListener());
p1.add(f1);
btn=new JButton(); btn.setText("Code!");
btn.addActionListener(new OkButtonActionListener());
p1.add(btn);
......@@ -48,7 +58,8 @@ public class caesarFrame extends JFrame{
add(p2);
p2.add(new JLabel("Output:"),BorderLayout.WEST);
f2=new JTextField(20);
f2.setEnabled(false);
f2.setEditable(true);
f2.addFocusListener(new FocuseLoseListener(true));
p2.add(f2);
//-----------------------------------------------
......@@ -56,11 +67,52 @@ public class caesarFrame extends JFrame{
setVisible(true);
}
private class OkButtonActionListener extends CaesarCode implements ActionListener
private class OkButtonActionListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent ae) {
f2.setText(caesarCode(f1.getText(), (char)jcb.getSelectedItem()));
if(decode==true)
f1.setText(CaesarCode.caesarDeCode(f2.getText(), (char)jcb.getSelectedItem()));
else
f2.setText(CaesarCode.caesarCode(f1.getText(), (char)jcb.getSelectedItem()));
}
}
private class FocuseLoseListener implements FocusListener
{
private boolean dir;
public FocuseLoseListener(boolean b)
{
dir=b;
}
@Override
public void focusGained(FocusEvent fe) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void focusLost(FocusEvent fe) {
decode=dir;
}
}
private class InputKeyFieldListener implements DocumentListener
{
@Override
public void insertUpdate(DocumentEvent de) {
f2.setText(CaesarCode.caesarCode(f1.getText(), (char)jcb.getSelectedItem()));
}
@Override
public void removeUpdate(DocumentEvent de) {
f2.setText(CaesarCode.caesarCode(f1.getText(), (char)jcb.getSelectedItem()));
}
@Override
public void changedUpdate(DocumentEvent de) {
f2.setText(CaesarCode.caesarCode(f1.getText(), (char)jcb.getSelectedItem()));
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment