Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Choice;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Iterator;
- import java.util.Vector;
- import javax.swing.BoxLayout;
- import javax.swing.DefaultListModel;
- import javax.swing.JButton;
- import javax.swing.JFileChooser;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JList;
- import javax.swing.JMenu;
- import javax.swing.JMenuBar;
- import javax.swing.JMenuItem;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JPasswordField;
- import javax.swing.JPopupMenu;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- import javax.swing.JTree;
- import javax.swing.SwingUtilities;
- import javax.swing.event.TreeSelectionEvent;
- import javax.swing.event.TreeSelectionListener;
- import javax.swing.table.DefaultTableModel;
- import javax.swing.tree.DefaultMutableTreeNode;
- import javax.swing.tree.TreeSelectionModel;
- public class JelszóFelület extends JFrame implements ActionListener, MouseListener {
- private final JMenuBar mbFőmenü = new JMenuBar();
- private final JMenu mFile = new JMenu("File");
- private final JMenuItem miFileÚj = new JMenuItem("Új");
- private final JMenuItem miFileMegnyit = new JMenuItem("Megnyit...");
- private final JMenuItem miFileMesterjelszóvált = new JMenuItem("Mesterjelszó megváltoztatása");
- private final JMenuItem miFileMent = new JMenuItem("Ment");
- private final JMenuItem miFileMentMásként = new JMenuItem("Ment másként...");
- private final JMenu miFileNyomtat = new JMenu("Nyomtat");
- private final JMenuItem miFileKilép = new JMenuItem("Kilép");
- private final JMenu mSúgó = new JMenu("Súgó");
- private final JMenuItem miSúgóTémakörök = new JMenuItem("Témakörök");
- private final JMenuItem miSúgóNévjegy = new JMenuItem("Névjegy");
- private String password;
- private String password2;
- private Vector<String> oszlop = new Vector();
- private Vector windows = new Vector();
- private Vector internet = new Vector();
- private Vector egyéb = new Vector();
- private JTree tree = new JTree();
- private JPanel pnjobb = new JPanel();
- public DefaultTableModel model = new DefaultTableModel();
- JTable table = new JTable(model);
- private JScrollPane scrollPane = new JScrollPane(table);
- private File WindowsFile = new File("\\windowslista.dat");
- private File InternetFile = new File("\\internetlista.dat");
- private File EgyébFile = new File("\\egyéblista.dat");
- public JelszóFelület() {
- setLayout(new BorderLayout());
- setSize(630, 500);
- setTitle("Jelszómentő");
- setLocationRelativeTo(this);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setJMenuBar(mbFőmenü);
- mbFőmenü.add(mFile);
- mFile.add(miFileÚj);
- miFileÚj.addActionListener(this);
- mFile.add(miFileMegnyit);
- miFileMegnyit.addActionListener(this);
- miFileMesterjelszóvált.setEnabled(false);
- mFile.add(miFileMesterjelszóvált);
- mFile.addSeparator();
- miFileMent.setEnabled(false);
- mFile.add(miFileMent);
- miFileMentMásként.setEnabled(false);
- mFile.add(miFileMentMásként);
- mFile.add(miFileNyomtat);
- mFile.addSeparator();
- mFile.add(miFileKilép);
- mbFőmenü.add(mSúgó);
- mSúgó.add(miSúgóTémakörök);
- mSúgó.addSeparator();
- miSúgóNévjegy.addActionListener(this);
- mSúgó.add(miSúgóNévjegy);
- miFileKilép.addActionListener(this);
- miFileKilép.setEnabled(false);
- miSúgóNévjegy.addActionListener(this);
- scrollPane.addMouseListener(this);
- setVisible(true);
- }
- @Override
- public void actionPerformed(ActionEvent ae) {
- if (ae.getSource() == miFileÚj) { //Ha az újra kattintok
- JPanel panel = new JPanel();
- JLabel label = new JLabel("Add meg a jelszót:"); //Feljön egy Jlabel
- JPasswordField pass = new JPasswordField(10); //megadhatjuk a jelszót
- panel.add(label);
- panel.add(pass);
- boolean passwordfaszae = false; //a jelszó értéke kezdetben hamis
- String[] options = new String[]{"OK", "Mégse"};
- int option = JOptionPane.showOptionDialog(null, panel, "Mesterjelszó megadása",
- JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE,
- null, options, options[1]);
- {
- if (option == 0) { //ha az OK-ra kattintunk
- char[] password = pass.getPassword(); //eltároljuk a jelszót
- while (!passwordfaszae) { //amíg a két jelszó nem egyezik meg ismét bekérjük
- JPanel panel2 = new JPanel();
- JLabel label2 = new JLabel("Ismételd meg a jelszót!");
- JPasswordField pass2 = new JPasswordField(10);
- panel2.add(label2);
- panel2.add(pass2);
- String[] options2 = new String[]{"OK", "Mégse"};
- int option2 = JOptionPane.showOptionDialog(null, panel2, "Jelszó ismétlése",
- JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE,
- null, options2, options2[1]);
- if (option2 == 0) {
- char[] password2 = pass2.getPassword();
- }
- if (Arrays.equals(pass.getPassword(), pass2.getPassword())) { //ha a két jelszó megegyezik
- passwordfaszae = true; //kiléphetünk a ciklusból
- JOptionPane.showMessageDialog(null, "Mesterjelszó eltárolva!");
- miFileMesterjelszóvált.setEnabled(true); //utána már megváltoztathatjuk a jelszót
- miFileKilép.setEnabled(true); //ki is léphetünk
- DefaultMutableTreeNode top
- = new DefaultMutableTreeNode("Általános");
- createNodes(top);
- tree = new JTree(top);
- tree.setPreferredSize(new Dimension(150, 150));
- JScrollPane treeView = new JScrollPane(tree);
- tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
- tree.addTreeSelectionListener(new TreeSelectionListener() {
- public void valueChanged(TreeSelectionEvent e) {
- DefaultTableModel model = new DefaultTableModel();
- JTable table = new JTable(model);
- JTree tree = (JTree) e.getSource();
- DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
- String selectedNodeName = selectedNode.toString();
- if (selectedNodeName == "Windows") {
- if (WindowsFile.exists());
- model.setRowCount(0);
- {
- try {
- ObjectInputStream in = new ObjectInputStream(
- new FileInputStream(WindowsFile)); //beolvassuk a windowsfilet
- Vector rowData = (Vector) in.readObject(); //eltárojuk vectorban
- Iterator itr = rowData.iterator(); //iteratorral megyünk végig a rowdata-n
- System.out.println(rowData);
- while (itr.hasNext()) { //amíg van elem
- model.addRow((Vector) itr.next());
- System.out.println("Sout " + (Vector) itr.next());//adha hozzá a sort
- }
- model.addRow(rowData);
- in.close();
- } catch (Exception ex) {
- System.out.println("Fájl nem található");
- }
- }
- } else if (selectedNodeName == "Internet") {
- if (InternetFile.exists());
- model.setRowCount(0);
- System.out.println(model.getRowCount());
- {
- try {
- ObjectInputStream in = new ObjectInputStream(
- new FileInputStream(InternetFile)); //beolvassuk a windowsfilet
- Vector rowData = (Vector) in.readObject(); //eltárojuk vectorban
- model.addRow(rowData);
- Iterator itr = rowData.iterator(); //iteratorral megyünk végig a rowdata-n
- System.out.println(rowData);
- while (itr.hasNext()) { //amíg van elem
- model.addRow((Vector) itr.next()); //adha hozzá a sort
- }
- in.close();
- } catch (Exception ex) {
- System.out.println("Fájl nem található");
- }
- }
- } else if (selectedNodeName == "Egyéb") {
- if (EgyébFile.exists());
- {
- model.setRowCount(0);
- try {
- System.out.println("egyéb");
- ObjectInputStream in = new ObjectInputStream(
- new FileInputStream(EgyébFile)); //beolvassuk a windowsfilet
- Vector rowData = (Vector) in.readObject(); //eltárojuk vectorban
- Iterator itr = rowData.iterator(); //iteratorral megyünk végig a rowdata-n
- System.out.println(rowData);
- while (itr.hasNext()) { //amíg van elem
- model.addRow((Vector) itr.next()); //adha hozzá a sort
- }
- model.addRow(rowData);
- in.close();
- } catch (Exception ex) {
- System.out.println("Fájl nem található");
- }
- }
- }
- }
- });
- add(tree, BorderLayout.WEST);
- táblábaír(); //beletesszük a táblába az oszlopok neveit, és meghívjuk a táblábaír metódust
- System.out.println("Sikerül továbblépni az íráshoz");
- miFileÚj.setEnabled(false);
- } else {
- JOptionPane.showMessageDialog(panel, "A két két jelszó nem egyezik!", "Error", JOptionPane.ERROR_MESSAGE); // a két jelszó nem egyezik meg
- }
- }
- }
- }
- } else if (ae.getSource() == miFileMegnyit) { //ha a megnyutásra kattintunk bejön a fájlmegnyitás ablak
- JFileChooser fileChooser = new JFileChooser();
- int returnValue = fileChooser.showOpenDialog(null);
- if (returnValue == JFileChooser.APPROVE_OPTION) {
- File selectedFile = fileChooser.getSelectedFile();
- }
- } else if (ae.getSource() == miFileKilép) {
- String ObjButtons[] = {"Igen", "Nem"};
- int PromptResult = JOptionPane.showOptionDialog(null,
- "Biztos, hogy kilép?", "Megerősítés",
- JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null,
- ObjButtons, ObjButtons[1]);
- if (PromptResult == 0) {
- System.exit(0);
- }
- } else if (ae.getSource() == miSúgóNévjegy) {
- JOptionPane.showMessageDialog(null, "Készítette: Biros András");
- }
- }
- @Override
- public void mouseClicked(java.awt.event.MouseEvent me) {
- if (SwingUtilities.isRightMouseButton(me)) {
- doPop(me);
- }
- }
- @Override
- public void mousePressed(java.awt.event.MouseEvent me) {
- }
- @Override
- public void mouseReleased(java.awt.event.MouseEvent me) {
- }
- @Override
- public void mouseEntered(java.awt.event.MouseEvent me) {
- }
- @Override
- public void mouseExited(java.awt.event.MouseEvent me) {
- }
- private void doPop(MouseEvent me) { //a felugróablak ott kell létrejöjjön ahol jobb egérrel kattintunk
- Felugróablak menu = new Felugróablak();
- menu.show(me.getComponent(), me.getX(), me.getY());
- menu.setVisible(true);
- }
- public void táblábaír() {
- //oszlopok neveit hozzáadjuk
- //Vector<String> oszlop = new Vector();
- String[] oszlopszöveg = {"Kategória", "Cím", "Felhasználó", "Jelszó", "URL", "Megjegyzés"};
- for (int i = 0; i < oszlopszöveg.length; i++) {
- String oszlopszöveg1 = oszlopszöveg[i];
- oszlop.add(oszlopszöveg1);
- }
- for (int i = 0; i < oszlop.size(); i++) {
- model.addColumn(oszlop.get(i));
- }
- //A Windows File-t csak akkor olvassuk be, ha létezik, és a fájl módosítási dátuma nagyobb mint az internetfájlnak és az egyébfájlnak
- //Ezzel elkerülhetjük, hogy egy új csoport hozzáadásakor mindig hozzáadja a már egyszer beolvasott értéket
- if (WindowsFile.exists() && WindowsFile.lastModified() > InternetFile.lastModified() && WindowsFile.lastModified() > EgyébFile.lastModified()) {
- try {
- ObjectInputStream in = new ObjectInputStream(
- new FileInputStream(WindowsFile)); //beolvassuk a windowsfilet
- Vector rowData = (Vector) in.readObject(); //eltárojuk vectorban
- System.out.println(rowData);
- Iterator itr = rowData.iterator(); //iteratorral megyünk végig a rowdata-n
- while (itr.hasNext()) { //amíg van elem
- model.addRow((Vector) itr.next()); //adha hozzá a sort
- }
- in.close();
- } catch (Exception ex) {
- System.out.println("Fájl nem található");
- }
- }
- if (InternetFile.exists() && InternetFile.lastModified() > WindowsFile.lastModified() && InternetFile.lastModified() > EgyébFile.lastModified()) {
- try {
- ObjectInputStream in = new ObjectInputStream(
- new FileInputStream(InternetFile));
- Vector rowData = (Vector) in.readObject();
- Iterator itr = rowData.iterator();
- while (itr.hasNext()) {
- model.addRow((Vector) itr.next());
- }
- in.close();
- } catch (Exception ex) {
- System.out.println("Fájl nem található");
- }
- }
- if (EgyébFile.exists() && EgyébFile.lastModified() > WindowsFile.lastModified() && EgyébFile.lastModified() > InternetFile.lastModified()) {
- try {
- ObjectInputStream in = new ObjectInputStream(
- new FileInputStream(EgyébFile));
- Vector rowData = (Vector) in.readObject();
- Iterator itr = rowData.iterator();
- while (itr.hasNext()) {
- model.addRow((Vector) itr.next());
- }
- in.close();
- } catch (Exception ex) {
- System.out.println("Fájl nem található");
- }
- }
- pnjobb.add(scrollPane);
- add(pnjobb, BorderLayout.CENTER);
- setVisible(true);
- }
- private void createNodes(DefaultMutableTreeNode top) {
- DefaultMutableTreeNode windows = null;
- DefaultMutableTreeNode internet = null;
- DefaultMutableTreeNode egyéb = null;
- windows = new DefaultMutableTreeNode("Windows");
- internet = new DefaultMutableTreeNode("Internet");
- egyéb = new DefaultMutableTreeNode("Egyéb");
- top.add(windows);
- top.add(internet);
- top.add(egyéb);
- }
- public class Felugróablak extends JPopupMenu implements MouseListener, ActionListener {
- private final JMenuItem hozzáadItem;
- private JMenuItem törölItem;
- private final Choice ch1 = new Choice();
- private final JLabel lbcsop = new JLabel("Csoport: ");
- private final JLabel lbcím = new JLabel("Cím: ");
- private final JLabel lbuser = new JLabel("Felhasználónév: ");
- private final JLabel lbjelszó = new JLabel("Jelszó: ");
- private final JLabel lbjelszórepeat = new JLabel("Jelszó Ismétlése: ");
- private final JTextField tfcím = new JTextField(10);
- private final JTextField tfuser = new JTextField(10);
- private final JPasswordField passwd = new JPasswordField(10);
- private final JPasswordField passwd2 = new JPasswordField(10);
- private final JLabel lburl = new JLabel("URL: ");
- private final JTextField tfurl = new JTextField(10);
- private final JLabel lbmegjegyzés = new JLabel("Megjegyzés: ");
- private final JTextArea tfarea = new JTextArea(5, 20);
- private final JButton jbOK = new JButton("OK");
- private final JButton jbMégse = new JButton("Mégse");
- private final JScrollPane scrollpane = new JScrollPane(tfarea);
- private ArrayList<String> internetarraylista = new ArrayList<String>();
- public ArrayList<String> windowsarraylista = new ArrayList<String>();
- private ArrayList<String> egyébarraylista = new ArrayList<String>();
- private JFrame g = new JFrame();
- private String cím;
- private String felhasználónév;
- private String jelszó;
- private String url;
- private String megjegyzes;
- public Felugróablak() {
- hozzáadItem = new JMenuItem("Új bejegyzés hozzáadása");
- hozzáadItem.addMouseListener(this); // ha a hozzáadásra kattintunk
- add(hozzáadItem);
- jbOK.addActionListener(this);
- jbMégse.addActionListener(this);
- }
- @Override
- public void mouseClicked(MouseEvent me) {
- }
- @Override
- public void mousePressed(MouseEvent me) {
- }
- @Override
- public void mouseReleased(MouseEvent me) {
- if (me.getSource() == hozzáadItem) { //ha a hozzáadásra kattintunk
- g.setTitle("Bejegyzés hozzáadása"); //az adatbekérő rész megjelenik
- g.setSize(350, 400);
- g.setLocationRelativeTo(this);
- g.setResizable(false);
- JPanel pnfelső = new JPanel();
- ch1.add("Windows");
- ch1.add("Internet");
- ch1.add("Egyéb");
- pnfelső.add(lbcsop);
- pnfelső.add(ch1);
- g.add(pnfelső);
- g.add(pnfelső, BorderLayout.NORTH);
- JPanel pnközépső = new JPanel();
- pnközépső.setLayout(new BoxLayout(pnközépső, BoxLayout.Y_AXIS));
- pnközépső.add(lbcím);
- pnközépső.add(tfcím);
- pnközépső.add(lbuser);
- pnközépső.add(tfuser);
- pnközépső.add(lbjelszó);
- pnközépső.add(passwd);
- pnközépső.add(lbjelszórepeat);
- pnközépső.add(passwd2);
- pnközépső.add(lburl);
- pnközépső.add(tfurl);
- pnközépső.add(lbmegjegyzés);
- pnközépső.add(scrollpane);
- pnközépső.setBackground(Color.LIGHT_GRAY);
- add(pnközépső, BorderLayout.CENTER);
- g.add(pnközépső);
- JPanel pnalsó = new JPanel();
- pnalsó.add(jbOK);
- pnalsó.add(jbMégse);
- add(pnalsó, BorderLayout.SOUTH);
- g.add(pnalsó, BorderLayout.SOUTH);
- g.setVisible(true);
- }
- }
- @Override
- public void mouseEntered(MouseEvent me) {
- }
- @Override
- public void mouseExited(MouseEvent me) {
- }
- @Override
- public void actionPerformed(ActionEvent ae) {
- if (ae.getSource() == jbOK) { //ha az ok-ra kattintunk
- boolean passwordjóe = false; //a jelszó kezdetben rossz
- String cím = tfcím.getText();
- String felhasználónév = tfuser.getText();
- String url = tfurl.getText();
- String megjegyzés = tfarea.getText();
- JPanel pn = new JPanel();
- if (!Arrays.equals(passwd.getPassword(), passwd2.getPassword())) { //ha a kér elszó nem negyezik meg hibát dob
- JOptionPane.showMessageDialog(pn, "A két jelszó nem egyezik!", "Error", JOptionPane.ERROR_MESSAGE);
- }
- add(pn, BorderLayout.CENTER);
- if (Arrays.equals(passwd.getPassword(), passwd2.getPassword())) {
- g.setVisible(false);//ha a két jelszó megegyezik
- passwordjóe = true;//true lesz az érték
- }
- if (ch1.getSelectedItem() == "Windows" && passwordjóe == true) { //ha a windowst választottuk ki és a jelszó jó
- //az arraylistába betehetjük az értékeket
- windows.clear();
- windows.add("Windows");
- windows.add(cím);
- windows.add(felhasználónév);
- windows.add(passwd.getText());
- windows.add(url);
- windows.add(megjegyzés);
- model.addRow(windows); //hozzáadjuk a sorhoz az elemeket
- setVisible(false); //láthatatlan lesz az ablak
- Object [][] rowsdata = new Object[windows.size()][oszlop.size()];
- for (int i = 0; i < windows.size(); i++) {
- }
- try {
- ObjectOutputStream out = new ObjectOutputStream(
- new FileOutputStream(WindowsFile)); //kiírjuk fileba
- out.writeObject(model.getDataVector());
- out.close();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- } else if (ch1.getSelectedItem() == "Internet" && passwordjóe == true) {
- internet.clear();
- internet.add("Internet");
- internet.add(cím);
- internet.add(felhasználónév);
- internet.add(passwd.getText());
- internet.add(url);
- internet.add(megjegyzés);
- model.addRow(internet);
- setVisible(false);
- try {
- ObjectOutputStream out = new ObjectOutputStream(
- new FileOutputStream(InternetFile));
- out.writeObject(model.getDataVector());
- out.close();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- } else if (ch1.getSelectedItem() == "Egyéb" && passwordjóe == true) {
- egyéb.clear();
- egyéb.add("Egyéb");
- egyéb.add(cím);
- egyéb.add(felhasználónév);
- egyéb.add(passwd.getText());
- egyéb.add(url);
- egyéb.add(megjegyzés);
- model.addRow(egyéb);
- setVisible(false);
- try {
- ObjectOutputStream out = new ObjectOutputStream(
- new FileOutputStream(EgyébFile));
- out.writeObject(model.getDataVector());
- out.close();
- } catch (Exception ex) {
- System.out.println("Nem sikerült a fájlt menteni");
- }
- }
- } else if (ae.getSource()
- == jbMégse) {
- g.setVisible(false);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement