package de.salzi.scrr;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import de.salzi.main.Verschluesseln;
public class Hauptklasse extends JFrame{
/**
* @author salzi
*
* Pictures by: www.iconfinder.com
*
*
*/
private static final long serialVersionUID = -2714686372015583670L;
//Andere Klassen
BackOffice bo = new BackOffice();
// Variablen
String pfadDesk = "C:\\Users\\Salzmann\\Desktop\\";
//---------Bilder
URL url = Hauptklasse.class.getResource("logo.png");
URL url2 = Hauptklasse.class.getResource("lock.png");
URL url3 = Hauptklasse.class.getResource("safe.png");
URL url4 = Hauptklasse.class.getResource("connection.png");
URL url5 = Hauptklasse.class.getResource("user.png");
URL url6 = Hauptklasse.class.getResource("leftArrow.png");
URL url7 = Hauptklasse.class.getResource("rigthArrow.png");
ImageIcon rArrow = new ImageIcon(url7);
ImageIcon lArrow = new ImageIcon(url6);
ImageIcon user = new ImageIcon(url5);
ImageIcon ico = new ImageIcon(url);
ImageIcon lock = new ImageIcon(url2);
ImageIcon safe = new ImageIcon(url3);
ImageIcon connect = new ImageIcon(url4);
//----------------------------------
//Verschiedene Panels
private JPanel panel = new JPanel();
private JPanel login = new JPanel();
private JPanel register = new JPanel();
private JPanel office = new JPanel();
private JPanel einstellungen = new JPanel();
private JPanel einstellungen2 = new JPanel();
private JPanel hinzuf = new JPanel();
//Komponenten -> Linke Menüleiste
private JLabel logo = new JLabel(lock);
private JButton btn = new JButton("Login");
private JButton reg = new JButton("Register");
private JButton startseite = new JButton("> Büro");
private JButton hinzu = new JButton("Hinzufügen");
private JButton einst = new JButton("Optionen");
//Komponenten Anmelden/Register
private JLabel h1 = new JLabel();
private JLabel reg_h1 = new JLabel();
private JLabel t_wdhPass = new JLabel();
private JLabel t_regPass = new JLabel();
private JLabel t_pwFeld = new JLabel();
private JButton anmelden = new JButton(" Anmelden");
private JButton create = new JButton("Erstelle Account");
private JCheckBox angemeldet = new JCheckBox();
private JPasswordField reg_pw = new JPasswordField();
private JPasswordField wdhPass = new JPasswordField();
private JPasswordField pwFeld = new JPasswordField();
//Komponenten -> Büro
private JComboBox plat = new JComboBox();
private JLabel choose = new JLabel();
private JLabel t_daten = new JLabel();
private JLabel hello = new JLabel();
private JButton anz = new JButton("Anzeigen");
private JTextArea daten = new JTextArea();
private JButton del = new JButton("Löschen");
//Komponenten -> Einstellungen
private JLabel datenbanken = new JLabel();
private JLabel allgemeines = new JLabel();
private JLabel verschl = new JLabel();
private JLabel propH1 = new JLabel();
private JLabel tdbHost = new JLabel();
private JLabel tdbPort = new JLabel();
private JLabel tdbUser = new JLabel();
private JLabel tdbPass = new JLabel();
private JLabel fEingabe = new JLabel();
private JTextField dbHost = new JTextField();
private JTextField dbPort = new JTextField();
private JTextField dbUser = new JTextField();
private JTextField eingabe = new JTextField();
private JPasswordField dbPass = new JPasswordField();
private JCheckBox db = new JCheckBox();
private JCheckBox pwAbfrage = new JCheckBox();
private JButton dbVerbinden = new JButton("Verbindung prüfen");
private JCheckBox anzeigePwAbfrage = new JCheckBox();
private JCheckBox leicht = new JCheckBox(); // offen
private JCheckBox stark = new JCheckBox();
private JButton propSafe = new JButton("Speichern");
private JButton next = new JButton();
private JButton back = new JButton();
//Komponenten -> Hinzufügen
private JLabel pfTitel = new JLabel();
private JLabel tpfName = new JLabel();
private JLabel tpfUser = new JLabel();
private JLabel tpfEmail = new JLabel();
private JLabel tpfPass = new JLabel();
private JTextField pfName = new JTextField();
private JTextField pfUser = new JTextField();
private JTextField pfEmail = new JTextField();
private JTextField pfPass = new JTextField();
private JButton eintragen = new JButton("Eintragen");
public static void main(String[] args) {
new Hauptklasse();
}
public Hauptklasse() {
//Erstelle das Fenster
Fenster();
//Erstellen von Ordner und Config
bo.DateiErstellen();
bo.pwSpeicherDatei();
}
public void Fenster() {
// JFrame erstellen und andere Methoden zum Fenster Design
setTitle("Dein Passwort Tresor");
setResizable(false);
setSize(new Dimension(800, 500));
setIconImage(ico.getImage());
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(null);
add(panel);
Oberflaeche();
RegisterOverlay();
if(bo.CheckWert("Abfragen:") == true) {
LoginOverlay();
} else {
panel.removeAll();
panel.add(logo);
Buero();
}
Properties();
hinzufuegen();
properties2();
}
/*********************************************************************
* Background Oberfläche beim Öffnen vom Programm
* Danach wird das Hauptmenü initialisiert
*********************************************************************/
public void Oberflaeche() {
panel.setSize(800, 500);
panel.setLayout(null);
panel.setVisible(true);
panel.setBackground(new Color(8, 142, 255, 255));
panel.add(btn);
panel.add(reg);
panel.add(login);
panel.add(register);
panel.add(einstellungen);
panel.add(logo);
logo.setBounds(5, 5, 100, 100);
btn.setBounds(-1, 140, 121, 40);
btn.setFont(new Font("Arial", Font.BOLD, 17));
btn.setFocusPainted(false);
btn.setBackground(new Color(202, 227, 255, 255));
btn.setBorder(null);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
register.setVisible(false);
login.setVisible(true);
btn.setEnabled(true);
if(btn.isEnabled()) {
reg.setBackground(new Color(202, 227, 255, 255));
btn.setBackground(new Color(2, 120, 255, 255));
login.getRootPane().setDefaultButton(anmelden);
btn.setText("> Login");
reg.setText("Registrieren");
}
}
});
reg.setBounds(-1, 180, 121, 40);
reg.setFont(new Font("Arial", Font.BOLD, 17));
reg.setFocusPainted(false);
reg.setBackground(new Color(202, 227, 255, 255));
reg.setBorder(null);
reg.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
login.setVisible(false);
register.setVisible(true);
reg.setEnabled(true);
if(reg.isEnabled()) {
btn.setBackground(new Color(202, 227, 255, 255));
reg.setBackground(new Color(2, 120, 255, 255));
register.getRootPane().setDefaultButton(create);
btn.setText("Login");
reg.setText("> Registrieren");
}
}
});
if(bo.CheckWert("Registriert") == true) {
register.setVisible(false);
login.setVisible(true);
btn.setEnabled(true);
if(btn.isEnabled()) {
reg.setVisible(false);
reg.setBackground(new Color(202, 227, 255, 255));
btn.setBackground(new Color(2, 120, 255, 255));
login.getRootPane().setDefaultButton(anmelden);
btn.setText("> Login");
}
} else if(bo.CheckWert("Registriert") == false){
login.setVisible(false);
register.setVisible(true);
reg.setEnabled(true);
if(reg.isEnabled()) {
btn.setBackground(new Color(202, 227, 255, 255));
reg.setBackground(new Color(2, 120, 255, 255));
register.getRootPane().setDefaultButton(create);
reg.setText("> Registrieren");
}
}
}
/********************************************************************************
* Login Oberfläche wird erstellt. Nur wenn Booeal readConfig true ist,
* ansonsten wird registrations Fenster geöffnet für Erstanmeldung
********************************************************************************/
public void LoginOverlay() {
login.setSize(new Dimension(690, 500));
login.setLocation(120, 0);
login.setLayout(null);
login.setBackground(new Color(2, 120, 255, 255));
login.add(h1);
login.add(t_pwFeld);
login.add(pwFeld);
login.add(anmelden);
login.add(angemeldet);
h1.setText("Melde dich an!");
h1.setFont(new Font("Arial", Font.BOLD, 35));
h1.setBounds(100, 50, 400, 50);
t_pwFeld.setText("Gebe dein Passwort ein:");
t_pwFeld.setFont(new Font("Arial", Font.BOLD, 18));
t_pwFeld.setBounds(100, 150, 300, 30);
pwFeld.setBounds(100, 185, 200, 30);
pwFeld.setFont(new Font("Arial", Font.BOLD, 16));
if(bo.CheckWert("Pw-Speichern") == true) {
angemeldet.setSelected(true);
} else {
angemeldet.setSelected(false);
}
angemeldet.setBounds(100, 215, 200, 30);
angemeldet.setText("Passwort speichern?");
angemeldet.setBackground(new Color(2, 120, 255, 255));
if(angemeldet.isSelected()) {
String anzeigen = "";
try {
String p = bo.PwAusgabe(6, "Passwort:");
anzeigen = Verschluesseln.entschluesseln(p);
} catch (IOException e) {
e.printStackTrace();
}
pwFeld.setText(anzeigen);
}
anmelden.setBounds(100, 245, 160, 40);
anmelden.setFocusPainted(false);
anmelden.setBackground(new Color(255, 101, 20, 255));
anmelden.setFont(new Font("Arial", Font.BOLD, 16));
anmelden.isDefaultButton();
anmelden.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0, 80)));
anmelden.setMargin(new Insets(0,0,0,0));
anmelden.setIcon(user);
anmelden.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
// Prüft ob der Hacken bei Passwort speichern drin ist nach dem anmelden und
// setzt in der Config den Wert angemessen
String pw = pwFeld.getText();
if(angemeldet.isSelected() == true) {
try {
bo.ConfigBearbeiten(14, "Pw-Speichern:", "true");
} catch (IOException e1) {
e1.printStackTrace();
}
} else {
try {
bo.ConfigBearbeiten(14, "Pw-Speichern:", "false");
} catch (IOException e1) {
e1.printStackTrace();
}
}
// --------------------------------------------------------------
String eingabe = Verschluesseln.verschluesseln(pw);
// Prüf das Anmelde Passwort
if(bo.CheckPw(6, eingabe) == true) {
panel.removeAll();
panel.add(logo);
Buero();
} else {
// Wenn bestimmte Fehl-Anmeldungen gesetzt sind
if(!(bo.getWert("Fehl-Anmeldungen:").equalsIgnoreCase("0"))) {
// Zählung der Falschen Passwort eingaben
int versuch = Integer.parseInt(bo.getWert("Fehl-Anmeldungen:"));
versuch = versuch -1;
if((versuch - 1) == 0) {
// Datei Löschen
} else {
try {
bo.ConfigBearbeiten(22, "Fehl-Anmeldungen:", "" + versuch);
} catch (IOException e) {
e.printStackTrace();
}
}
JOptionPane.showMessageDialog(null, "Falsches Passwort! Noch " + versuch + " Versuche \n"
+ "Bis Passwörter gelöscht werden!",
"Achtung!", JOptionPane.WARNING_MESSAGE);
} else {
// Wenn man unendlich oft PW falsch eingeben kann
JOptionPane.showMessageDialog(null, "Falsches Passwort! \n"
+ "Oder noch nicht Registriert?",
"Achtung!", JOptionPane.WARNING_MESSAGE);
}
}
}
});
}
/********************************************************************************
* Register Overfläche für neuen Account zum Passwort
* speichern. Kommt nicht wieder nach dem einmaligen Registrieren
********************************************************************************/
public void RegisterOverlay() {
register.setSize(new Dimension(690, 500));
register.setLocation(120, 0);
register.setLayout(null);
register.setBackground(new Color(2, 120, 255, 255));
register.add(reg_h1);
register.add(t_regPass);
register.add(reg_pw);
register.add(t_wdhPass);
register.add(wdhPass);
register.add(create);
reg_h1.setText("Registriere einen Account!");
reg_h1.setFont(new Font("Arial", Font.BOLD, 35));
reg_h1.setBounds(100, 50, 500, 50);
t_regPass.setText("Gebe dein Passwort ein:");
t_regPass.setFont(new Font("Arial", Font.BOLD, 18));
t_regPass.setBounds(100, 150, 300, 30);
reg_pw.setBounds(100, 185, 200, 30);
reg_pw.setFont(new Font("Arial", Font.BOLD, 16));
t_wdhPass.setText("Wiederhole dein Passwort:");
t_wdhPass.setFont(new Font("Arial", Font.BOLD, 18));
t_wdhPass.setBounds(100, 220, 300, 30);
wdhPass.setBounds(100, 250, 200, 30);
wdhPass.setFont(new Font("Arial", Font.BOLD, 16));
// Button auf dem Register Panel
create.setBounds(100, 285, 170, 35);
create.setFont(new Font("Arial", Font.BOLD, 15));
create.setFocusPainted(false);
create.setBackground(new Color(202, 227, 255, 255));
create.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
String pw = reg_pw.getText();
String wdh = wdhPass.getText();
// Durch den Button wird in der Config das Pw gesetzt und Registriert auf True!!
if(pw.contains(wdh)) {
String passwd = Verschluesseln.verschluesseln(pw);
try {
bo.ConfigBearbeiten(4, "Registriert:", "true"); // -> Registriert auf True
bo.ConfigBearbeiten(6, "Passwort:", passwd); // -> Passwort eintragen
} catch (IOException e) {
e.printStackTrace();
}
panel.removeAll();
Buero();
} else {
JOptionPane.showMessageDialog(null, "Passwort stimmt nicht überein! \n"
+ "Überprüfe nochmal Passwort Wiederholen.",
"Achtung!", JOptionPane.WARNING_MESSAGE);
}
}
});
}
/***********************************************************************************
* Das Hauptoffice des Programms, hier kann man Passwörter abrufen
* -> Büro
***********************************************************************************/
public void Buero() {
panel.add(hinzuf);
panel.add(einstellungen);
panel.add(office);
panel.add(startseite);
panel.add(hinzu);
panel.add(einst);
panel.add(einstellungen2);
hinzu.setBounds(-1, 180, 121, 40);
hinzu.setFocusPainted(false);
hinzu.setBorder(null);
hinzu.setBackground(new Color(148, 212, 255, 255));
hinzu.setFont(new Font("Arial", Font.BOLD, 17));
hinzu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
hinzu.setEnabled(true);
if(hinzu.isEnabled()) {
hinzu.setBackground(new Color(200, 246, 255, 255));
einst.setBackground(new Color(148, 212, 255, 255));
startseite.setBackground(new Color(148, 212, 255, 255));
office.setVisible(false);
einstellungen.setVisible(false);
hinzuf.setVisible(true);
startseite.setText("Büro");
einst.setText("Optionen");
hinzu.setText("> Hinzufügen");
}
}
});
einst.setBounds(-1, 220, 121, 40);
einst.setFocusPainted(false);
einst.setBorder(null);
einst.setBackground(new Color(148, 212, 255, 255));
einst.setFont(new Font("Arial", Font.BOLD, 17));
einst.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
einst.setEnabled(true);
if(einst.isEnabled()) {
einst.setBackground(new Color(200, 246, 255, 255));
hinzu.setBackground(new Color(148, 212, 255, 255));
startseite.setBackground(new Color(148, 212, 255, 255));
office.setVisible(false);
hinzuf.setVisible(false);
einstellungen.setVisible(true);
startseite.setText("Büro");
einst.setText("> Optionen");
hinzu.setText("Hinzufügen");
}
}
});
startseite.setBounds(-1, 140, 121, 40);
startseite.setFocusPainted(false);
startseite.setBackground(new Color(200, 246, 255, 255));
startseite.setBorder(null);
startseite.setFont(new Font("Arial", Font.BOLD, 17));
startseite.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
startseite.setEnabled(true);
if(startseite.isEnabled()) {
startseite.setBackground(new Color(200, 246, 255, 255));
hinzu.setBackground(new Color(148, 212, 255, 255));
einst.setBackground(new Color(148, 212, 255, 255));
einstellungen.setVisible(false);
hinzuf.setVisible(false);
office.setVisible(true);
startseite.setText("> Büro");
einst.setText("Optionen");
hinzu.setText("Hinzufügen");
}
}
});
office.setSize(new Dimension(690, 500));
office.setLocation(120, 0);
office.setVisible(true);
office.setLayout(null);
office.setBackground(new Color(200, 246, 255, 255));
office.add(hello);
office.add(plat);
office.add(choose);
office.add(daten);
office.add(t_daten);
office.add(anz);
office.add(del);
hello.setText("Herzlich Willkommen " + System.getProperty("user.name") + "!");
hello.setFont(new Font("Comic Sans MS", Font.BOLD, 29));
hello.setBounds(100, 50, 500, 50);
// menu zu einer Combobox hinzufügen
for(int i = 0; i < bo.showMenu().size(); i++) {
plat.addItem(bo.showMenu().get(i));
}
choose.setText("Wähle eine Plattform:");
choose.setBounds(100, 150, 200, 30);
choose.setFont(new Font("Arial", Font.BOLD, 17));
t_daten.setText("Deine Account Daten:");
t_daten.setBounds(320, 150, 200, 30);
t_daten.setFont(new Font("Arial", Font.BOLD, 17));
plat.setBounds(100, 180, 200, 30);
daten.setBounds(320, 180, 270, 250);
daten.setEditable(false);
daten.setFont(new Font("Arial", Font.BOLD, 15));
daten.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0, 255)));
daten.setText("Username: " + "\n"
+ "--\n"
+ "Passwort: " + "\n"
+ "--\n"
+ "E-Mail: " + "\n"
+ "--\n");
anz.setBounds(100, 230, 120, 35);
anz.setFocusPainted(false);
anz.setBackground(new Color(108, 255, 133, 255));
anz.setFont(new Font("Arial", Font.BOLD, 15));
anz.addActionListener(new ActionListener() {
/**********************************************
* Komplette entschluesselung des Textes in Speicher Datei
* Und anzeigen der daten mit Entschlüsselten Pw
**********************************************/
@Override
public void actionPerformed(ActionEvent ev) {
if(bo.CheckWert("Pw-Aufruf-Abfrage") == false) {
String pf = plat.getSelectedItem().toString();
String zeile = bo.vttAuslesen(pf);
int eins=0;
int zwei=0;
int drei=0;
int count=0;
for(int i = 0; i < zeile.length(); i++) {
char[] read = zeile.toCharArray();
String g = "" + read[i];
if(g.contains("-")) {
if(count == 0) {
eins = i;
}
if(count == 1) {
zwei = i;
}
if(count == 2) {
drei = i;
}
count++;
}
}
String u = zeile.substring(eins+1, zwei);
String em = zeile.substring(zwei+1, drei);
String pwd = zeile.substring(drei+1);
pwd = Verschluesseln.entschluesseln(pwd);
daten.setText("Username: " + "\n"
+ "> " + u + "\n"
+ "Passwort: " + "\n"
+ "> " + pwd + "\n"
+ "E-Mail: " + "\n"
+ "> " + em + "\n");
} else {
String eingabe = JOptionPane.showInputDialog(null,"Gib das Passwort ein",
"Eingabeaufforderung",
JOptionPane.PLAIN_MESSAGE);
String p1 = Verschluesseln.verschluesseln(eingabe);
if(bo.CheckPw(6, p1)) {
String pf = plat.getSelectedItem().toString();
String zeile = bo.vttAuslesen(pf);
int eins=0;
int zwei=0;
int drei=0;
int count=0;
for(int i = 0; i < zeile.length(); i++) {
char[] read = zeile.toCharArray();
String g = "" + read[i];
if(g.contains("-")) {
if(count == 0) {
eins = i;
}
if(count == 1) {
zwei = i;
}
if(count == 2) {
drei = i;
}
count++;
}
}
String u = zeile.substring(eins+1, zwei);
String em = zeile.substring(zwei+1, drei);
String pwd = zeile.substring(drei+1);
pwd = Verschluesseln.entschluesseln(pwd);
daten.setText("Username: " + "\n"
+ "> " + u + "\n"
+ "Passwort: " + "\n"
+ "> " + pwd + "\n"
+ "E-Mail: " + "\n"
+ "> " + em + "\n");
} else {
JOptionPane.showMessageDialog(null,
"Das Passwort ist Falsch!",
"Fehler",
JOptionPane.WARNING_MESSAGE);
}
}
}
});
del.setBounds(100, 395, 120, 35);
del.setFocusPainted(false);
del.setBackground(new Color(255, 13, 29, 255));
del.setFont(new Font("Arial", Font.BOLD, 15));
del.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
// Abfrage ob der Nutzer den Datensatz wirklich löschen will
int eingabe = JOptionPane.showConfirmDialog(null,
"Willst du wirklich " + plat.getSelectedItem().toString() + " löschen?",
"Datensatz löschen",
JOptionPane.YES_NO_OPTION);
if(eingabe == 0) {
String delZeile = bo.vttAuslesen(plat.getSelectedItem().toString());
bo.deleteZeile(delZeile);
plat.removeItemAt(plat.getSelectedIndex());
}
}
});
}
/**************************************************************************************
* Einstellungs panel um verschiedene einstellungen einzustellen
*
**************************************************************************************/
public void Properties() {
einstellungen.setSize(new Dimension(690, 500));
einstellungen.setLocation(120, 0);
einstellungen.setLayout(null);
einstellungen.setBackground(new Color(200, 246, 255, 255));
einstellungen.add(db);
einstellungen.add(dbHost);
einstellungen.add(tdbHost);
einstellungen.add(tdbPass);
einstellungen.add(tdbPort);
einstellungen.add(tdbUser);
einstellungen.add(dbPort);
einstellungen.add(dbUser);
einstellungen.add(dbPass);
einstellungen.add(propH1);
einstellungen.add(propSafe);
einstellungen.add(pwAbfrage);
einstellungen.add(anzeigePwAbfrage);
einstellungen.add(dbVerbinden);
einstellungen.add(datenbanken);
einstellungen.add(allgemeines);
einstellungen.add(verschl);
einstellungen.add(leicht);
einstellungen.add(stark);
einstellungen.add(fEingabe);
einstellungen.add(eingabe);
einstellungen.add(next);
einstellungen.add(back);
einstellungen.setVisible(false);
// Wird Freigeschaltet wenn der Hacken db gesetzt ist
dbHost.setEnabled(false);
dbPort.setEnabled(false);
dbUser.setEnabled(false);
dbPass.setEnabled(false);
propH1.setText("Deine Einstellungen");
propH1.setFont(new Font("Arial", Font.BOLD, 35));
propH1.setBounds(50, 20, 500, 50);
next.setBounds(590, 10, 64, 64);
next.setCursor(new Cursor(Cursor.HAND_CURSOR));
next.setFocusPainted(false);
next.setIcon(rArrow);
next.setBorderPainted(false);
next.setContentAreaFilled(false);
next.setMargin(new Insets(0, 0, 0, 0));
next.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
einstellungen.setVisible(false);
einstellungen2.setVisible(true);
einstellungen2.add(next);
einstellungen2.add(back);
next.setBackground(Color.GRAY);
back.setBackground(Color.DARK_GRAY);
}
});
back.setBounds(520, 10, 64, 64);
back.setCursor(new Cursor(Cursor.HAND_CURSOR));
back.setFocusPainted(false);
back.setBorderPainted(false);
back.setMargin(new Insets(0, 0, 0, 0));
back.setIcon(lArrow);
back.setContentAreaFilled(false);
back.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
einstellungen.setVisible(true);
einstellungen2.setVisible(false);
einstellungen.add(next);
einstellungen.add(back);
back.setBackground(Color.GRAY);
next.setBackground(Color.DARK_GRAY);
}
});
allgemeines.setText("Allgemeine Einstellungen:");
allgemeines.setBounds(320, 95, 240 , 20);
allgemeines.setFont(new Font("Arial", Font.BOLD, 15));
datenbanken.setText("Datenbank Einstellungen:");
datenbanken.setBounds(50, 130, 240, 20);
datenbanken.setFont(new Font("Arial", Font.BOLD, 15));
propSafe.setBounds(450, 400, 170, 50);
propSafe.setFont(new Font("Arial", Font.BOLD, 16));
propSafe.setBackground(new Color(96, 255, 136));
propSafe.setIcon(safe);
propSafe.setCursor(new Cursor(Cursor.HAND_CURSOR));
/*****************************************************************
* Einstellung Speichern Button
*
****************************************************************/
propSafe.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
try {
// Setzen von Config Wert für Pw Abfrage vor anzeigen von Pw
if(anzeigePwAbfrage.isSelected()) {
bo.ConfigBearbeiten(18, "Pw-Aufruf-Abfrage:", "true");
} else {
bo.ConfigBearbeiten(18, "Pw-Aufruf-Abfrage:", "false");
}
// Setzen von Config Wert für Anfangs Einloggen
if(pwAbfrage.isSelected()) {
bo.ConfigBearbeiten(16, "Abfragen:", "true");
} else {
bo.ConfigBearbeiten(16, "Abfragen:", "false");
}
// Wenn RSA Verschlüsselung aktiv ist
if(stark.isSelected()) {
}
// Datenbank Daten abspeichern
if(db.isSelected()) {
bo.ConfigBearbeiten(8, "Datenbank nutzen:", "true");
bo.ConfigBearbeiten(9, "DB-Host:", dbHost.getText());
bo.ConfigBearbeiten(10, "DB-Port:", dbPort.getText());
bo.ConfigBearbeiten(11, "DB-User:", dbUser.getText());
bo.ConfigBearbeiten(12, "DB-Passwort:", dbPass.getText());
}
if(eingabe.getText() != null) {
bo.ConfigBearbeiten(22, "Fehl-Anmeldungen:", eingabe.getText());
}
} catch (IOException e) {
e.printStackTrace();
}
}
});
pwAbfrage.setBounds(320, 115, 240, 20);
pwAbfrage.setBackground(new Color(218, 243, 255, 255));
pwAbfrage.setText("Passwort beim Einloggen abfragen?");
if(bo.CheckWert("Abfragen:") == true) {
pwAbfrage.setSelected(true);
} else {
pwAbfrage.setSelected(false);
}
anzeigePwAbfrage.setBounds(320, 140, 240, 20);
anzeigePwAbfrage.setBackground(new Color(218, 243, 255, 255));
anzeigePwAbfrage.setText("Passwort bei Aufrufen abfragen?");
if(bo.CheckWert("Pw-Aufruf-Abfrage:") == true) {
anzeigePwAbfrage.setSelected(true);
} else {
anzeigePwAbfrage.setSelected(false);
}
verschl.setText("Passwort Verschlüsselung:");
verschl.setBounds(320, 190, 240, 20);
verschl.setFont(new Font("Arial", Font.BOLD, 15));
leicht.setText("Passwörter per 'Cäsar' verschlüsseln");
leicht.setBounds(320, 215, 240, 20);
leicht.setSelected(true);
leicht.setBackground(new Color(218, 243, 255, 255));
stark.setText("Passwörter per 'RSA' verschlüsseln");
stark.setEnabled(false);
stark.setBounds(320, 240, 240, 20);
stark.setBackground(new Color(218, 243, 255, 255));
fEingabe.setText("<html>Wie oft kann das Passwort falsch<p />"
+ "eingegeben werden bis zum Reset?<p />"
+ " 0 = aus</html>");
fEingabe.setBounds(320, 270, 240, 50);
eingabe.setBounds(370, 305, 40, 30);
eingabe.setFont(new Font("Arial", Font.BOLD, 12));
eingabe.setText(bo.getWert("Fehl-Anmeldungen:"));
db.setText("Passwörter in Datenbank speichern?");
db.setBounds(50, 150, 240, 20);
if(bo.CheckWert("Datenbank nutzen:") == true) {
db.setSelected(true);
} else {
db.setSelected(false);
}
db.setBackground(new Color(218, 243, 255, 255));
if(db.isSelected() == true) {
dbHost.setEnabled(true);
dbPort.setEnabled(true);
dbUser.setEnabled(true);
dbPass.setEnabled(true);
} else {
dbHost.setEnabled(false);
dbPort.setEnabled(false);
dbUser.setEnabled(false);
dbPass.setEnabled(false);
}
db.addItemListener(new ItemListener() {
// Wenn der Hacken gesetzt wird, dann werden Felder aktiv
@Override
public void itemStateChanged(ItemEvent ev) {
if(ev.getStateChange() == ItemEvent.SELECTED) {
dbHost.setEnabled(true);
dbPort.setEnabled(true);
dbUser.setEnabled(true);
dbPass.setEnabled(true);
} else {
dbHost.setEnabled(false);
dbPort.setEnabled(false);
dbUser.setEnabled(false);
dbPass.setEnabled(false);
}
}
});
tdbHost.setText("DB Host:");
tdbHost.setBounds(50, 170, 200, 20);
dbHost.setBounds(50, 190, 200, 20);
dbHost.setText(bo.getWert("DB-Host:"));
dbHost.setFont(new Font("Arial", Font.BOLD, 15));
tdbPort.setText("DB Port:");
tdbPort.setBounds(50, 210, 200, 20);
dbPort.setBounds(50, 230, 200, 20);
dbPort.setText(bo.getWert("DB-Port:"));
dbPort.setFont(new Font("Arial", Font.BOLD, 15));
tdbUser.setText("DB User:");
tdbUser.setBounds(50, 250, 200, 20);
dbUser.setBounds(50, 270, 200, 20);
dbUser.setText(bo.getWert("DB-User:"));
dbUser.setFont(new Font("Arial", Font.BOLD, 15));
tdbPass.setText("DB Passwort:");
tdbPass.setBounds(50, 290, 200, 20);
dbPass.setBounds(50, 310, 200, 20);
dbPass.setText(bo.getWert("DB-Passwort:"));
dbPass.setFont(new Font("Arial", Font.BOLD, 15));
dbVerbinden.setBounds(50, 340, 200, 35);
dbVerbinden.setFont(new Font("Arial", Font.BOLD, 16));
dbVerbinden.setFocusPainted(false);
dbVerbinden.setBackground(Color.GREEN);
dbVerbinden.setMargin(new Insets(0,0,0,0));
dbVerbinden.setIcon(connect);
dbVerbinden.setCursor(new Cursor(Cursor.HAND_CURSOR));
dbVerbinden.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
if(db.isSelected()) {
String pass = "";
if(dbPass.getText() != null) {
pass = dbPass.getText();
}
new DatenbankVerbindung(dbHost.getText(), dbPort.getText(), dbUser.getText(), pass);
}
}
});
}
public void properties2() {
einstellungen2.setSize(new Dimension(690, 500));
einstellungen2.setLocation(120, 0);
einstellungen2.setLayout(null);
einstellungen2.setBackground(new Color(200, 246, 255, 255));
einstellungen2.setVisible(false);
}
public void hinzufuegen() {
hinzuf.setSize(new Dimension(690, 500));
hinzuf.setLocation(120, 0);
hinzuf.setLayout(null);
hinzuf.setVisible(false);
hinzuf.setBackground(new Color(200, 246, 255, 255));
hinzuf.add(tpfName);
hinzuf.add(pfTitel);
hinzuf.add(pfName);
hinzuf.add(tpfUser);
hinzuf.add(pfUser);
hinzuf.add(pfEmail);
hinzuf.add(tpfEmail);
hinzuf.add(eintragen);
hinzuf.add(tpfPass);
hinzuf.add(pfPass);
Font text = new Font("Arial", Font.BOLD, 15);
Font txtFeld = new Font("Arial", Font.TRUETYPE_FONT, 15);
pfTitel.setText("Füge neue Passwörter hinzu");
pfTitel.setFont(new Font("Arial", Font.BOLD, 35));
pfTitel.setBounds(100, 50, 470, 50);
tpfName.setText("Name der Plattform:");
tpfName.setBounds(50, 150, 170, 30);
tpfName.setFont(text);
pfName.setBounds(50, 180, 170, 30);
pfName.setFont(txtFeld);
tpfUser.setText("Username der Plattform");
tpfUser.setBounds(50, 220, 170, 30);
tpfUser.setFont(text);
pfUser.setBounds(50, 250, 170, 30);
pfUser.setFont(txtFeld);
tpfEmail.setText("E-Mail Adresse der Plattform");
tpfEmail.setBounds(250, 150, 220, 30);
tpfEmail.setFont(text);
pfEmail.setBounds(250, 180, 200, 30);
pfEmail.setFont(txtFeld);
tpfPass.setText("Passwort der Plattform");
tpfPass.setBounds(250, 220, 220, 30);
tpfPass.setFont(text);
pfPass.setBounds(250, 250, 200, 30);
pfPass.setFont(txtFeld);
eintragen.setBounds(50, 290, 170, 50);
eintragen.setFont(new Font("Arial", Font.BOLD, 15));
eintragen.setBackground(new Color(250, 255, 203, 255));
eintragen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
String pltt = pfName.getText();
String user = pfUser.getText();
String email = pfEmail.getText();
String pass = pfPass.getText();
// Methode in BackOffice ausführen
bo.sSD(pltt, user, email, pass);
pfName.setText("");
pfUser.setText("");
pfEmail.setText("");
pfPass.setText("");
JOptionPane.showMessageDialog(null,
"Die Plattform wurde erfolgreich Angelegt!",
"Erfolg",
JOptionPane.PLAIN_MESSAGE);
// Neuen Datensatz bei Büro im Menü hinzufügen
plat.addItem(pltt);
}
});
}
}