//Bilddaten
int m_Xpos,m_Ypos;
Image m_aktBild;
JFrame m_fenster = new JFrame();
String m_dateiname;
int m_bild_x1,m_bild_y1; // die aktuelle Begrenzung
int m_bild_x2,m_bild_y2; // des Bildes
int m_bildHoehe,m_bildBreite;
//allgemeine Infos
int akt_person; //wer wird angezeigt
int MAX_PERSONEN=1000; //maximale anzahl an datensätze
String Cronikname, OrdnerCronikname; //verzeichniss struktur der geöffneten Datei
int status_auswahl_ehepartner=0; //Um Ehepartner auszuwählen
//datenbank
String[][] Datenbank=new String[MAX_PERSONEN][100];
String[][][] Beruf=new String[MAX_PERSONEN][10][2];
String[][][] Ehepartner=new String[MAX_PERSONEN][20][3];
String[][]Eltern=new String[MAX_PERSONEN][3];
String[][]Geschwister=new String[MAX_PERSONEN][20];
String[][]Kinder=new String[MAX_PERSONEN][20];
//Textfelder
JTextField textfeld[] =new JTextField[22];
JComboBox p_beruf =new JComboBox();
JTextArea p_notiz =new JTextArea("",5,10);
JTextArea p_notallg =new JTextArea("",5,10);
JComboBox p_ehe =new JComboBox();
JList list = new JList();
JList list2 = new JList();
JList list3 = new JList();
JLabel p_num =new JLabel("Datennummer:");
JLabel p_nummer =new JLabel("Keine Nummer");
CBildLeinwand m_bildanzeige ;
JScrollBar bildlaufleiste = new JScrollBar(SwingConstants.HORIZONTAL,1,1,1,11);
ActionListener listener;
JButton personbearbeitenbutton = new JButton("Bearbeiten");
JButton personbearbeitenbuttonsave = new JButton("Speichern");
int bearbeiten_status=0; //ob man die Person bearbeiten kann oder nicht 0=nicht
JLabel personbearbeitenlabel = new JLabel("Arbeitsplätze");
JButton p_ehe_ändern = new JButton("Wählen (Ehe)");
JButton p_beruf_ändern = new JButton ("Ändern (Job)");
JButton p_kinder_ändern = new JButton ("Ändern Kinder");
JButton p_geschwister_ändern = new JButton("Ändern Geschw.");
JButton p_eltern_ändern = new JButton ("Ändern Eltern");
JLabel p_gesch =new JLabel("Geschwister:");
JLabel p_eltern =new JLabel("Eltern:");
JLabel p_kinder =new JLabel("Kinder:");
//####################################################################################################################
public JMenuItem addMenuItem(String itemLabel, JMenu menu){
JMenuItem item = new JMenuItem(itemLabel);
item.addActionListener(listener);
return menu.add(item);
}
public static void main(String[] args) {
Chronik2 fenster = new Chronik2 ("FamilienChronik2");
fenster.pack();
fenster.setSize(1000,900);
fenster.setResizable(false);
fenster.setVisible(true);
}
// Im Konstruktor werden die Canvas-Malfläche und
// Schaltflächen zur Auswahl der Funktionen angelegt
Chronik2 (String titel) {
super(titel);
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
// Die Ereignisbehandlung für die Schaltflächen
class CMeinActionLauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {
String label;
label = e.getActionCommand();
if (label.equals("Neue Cronik")) {
neuecronikerstellenfenster NeueCronik =new neuecronikerstellenfenster ("FamilienChronik2");
NeueCronik.pack();
NeueCronik.setSize(200,100);
NeueCronik.setResizable(false);
NeueCronik.setVisible(true);
}
if (label.equals("Cronik laden")) {dateiladen(true);}
if (label.equals("Cronik speichern")) {speichern();}
if (label.equals("Programm beenden")) {System.exit(0);}
if (label.equals("Stammbaum anzeigen")) {} //##########
if (label.equals("Aktuelle Person bearbeiten")) {bearbeiten_status=0; bearbeiten_status();}
if (label.equals("Ändern Geschw.") && list.getSelectedIndex()!=-1) {
FamilienMitgliederbearbeitenfensterstarten("Familienmitglied bearbeiten","Geschwister");
}
if (label.equals("Ändern Eltern") && list2.getSelectedIndex()!=-1) {
FamilienMitgliederbearbeitenfensterstarten("Familienmitglied bearbeiten","Eltern");
}
if (label.equals("Ändern Kinder") && list3.getSelectedIndex()!=-1) {
FamilienMitgliederbearbeitenfensterstarten("Familienmitglied bearbeiten","Kinder");
}
if (label.equals("Ändern (Job)")) {
int index = p_beruf.getSelectedIndex();
jobbearbeitenfenster NeueCronik_person =new jobbearbeitenfenster ("Job bearbeiten",index);
NeueCronik_person.pack();
NeueCronik_person.setSize(200,180);
NeueCronik_person.setResizable(false);
NeueCronik_person.setVisible(true);
}
if (label.equals("Ändern (Ehe)")) {
int index = p_ehe.getSelectedIndex();
ehebearbeitenfenster NeueCronik_person =new ehebearbeitenfenster ("Job bearbeiten",index);
NeueCronik_person.pack();
NeueCronik_person.setSize(230,160);
NeueCronik_person.setResizable(false);
NeueCronik_person.setVisible(true);
}
if (label.equals("Wählen (Ehe)")) {
int index = p_ehe.getSelectedIndex();
if (!(p_ehe.getSelectedItem()).equals("Neu")){
akt_person=Integer.parseInt (Ehepartner[akt_person][index][0])-1;
eintragen();
}
}
if (label.equals("Entwickler")) {
entwicklerfenster NeueCronik_entwickler =new entwicklerfenster ("Entwickler");
NeueCronik_entwickler.pack();
NeueCronik_entwickler.setSize(400,80);
NeueCronik_entwickler.setResizable(false);
NeueCronik_entwickler.setVisible(true);
}
if (label.equals("Wert suchen")) {suchewahl();}
if (label.equals("Vater zeigen")) {suche(true,false,"","",false);}
if (label.equals("Mutter zeigen")) {suche(false,true,"","",false);}
if (label.equals("Bearbeiten") | label.equals("Abbrechen")) {bearbeiten_status();}
if (label.equals("Speichern")) { bearbeiten_status(); speichern(); }
if (label.equals("Stammbaum anzeigen")) {}
if (label.equals("Stammbaum-liste")) {}
if (label.equals("Personenliste")) {}
}
}
//Für ehe combo
class CMeinActionLauschercombo implements ItemListener {
public void itemStateChanged(ItemEvent e) {
status_auswahl_ehepartner=0;
int index= p_ehe.getSelectedIndex()+1;
if (e.getStateChange() != e.DESELECTED ) {
textfeld[10].setText(Ehepartner[akt_person][index-1][1]);
textfeld[11].setText(Ehepartner[akt_person][index-1][2]);
bearbeiten_status(); bearbeiten_status();
}
}
}
class Actioncombo extends MouseAdapter{
JComboBox combo;
public Actioncombo(JComboBox l){combo = l;}
public void mouseClicked(MouseEvent e){
status_auswahl_ehepartner++;
System.out.println(status_auswahl_ehepartner);
if (status_auswahl_ehepartner>=2) {
status_auswahl_ehepartner=0;
int index = combo.getSelectedIndex();
if (!(combo.getSelectedItem()).equals("Neu")){
akt_person=Integer.parseInt (Ehepartner[akt_person][index][0])-1;
eintragen();
}
}
}
}
//für Beruf combo
class CMeinActionLauschercombo2 implements ItemListener {
public void itemStateChanged(ItemEvent e) {
status_auswahl_ehepartner=0;
int index= p_beruf.getSelectedIndex()+1;
if (e.getStateChange() != e.DESELECTED ) {
p_notiz.setText(Beruf[akt_person][0][1]);
p_notiz.setText(Beruf[akt_person][index-1][1]);
bearbeiten_status(); bearbeiten_status();
}
}
}
//Listen
class ActionJList extends MouseAdapter{
JList listen;
public ActionJList(JList l){listen = l;}
public void mouseClicked(MouseEvent e){
int index = listen.locationToIndex(e.getPoint());
ListModel dlm = listen.getModel();
Object item = dlm.getElementAt(index);
String name=item + "";
if (!(name.equals("null")) && bearbeiten_status!=1) suche(false,false,name,"",true);
System.out.println(":" +name+":");
}
}
//einfügend er Objekte ohne Schaltfläschen
Panel panel1 = new Panel();
panel1.setLayout(gbl);
gbc.fill =GridBagConstraints.BOTH;
// Die Abständer der einzelnen GUI-Elemente zu den gedachten Gitterlinien festgelegen:
gbc.insets = new Insets(2,2,2,2);
//Menü #####################################################################################################
listener= new CMeinActionLauscher();
JMenuBar menueleiste =new JMenuBar();
JMenu menu1 =new JMenu("Programm");
JMenu menu2 =new JMenu("Datenbank");
JMenu menu3 =new JMenu("Datenbank");
JMenu menu4 =new JMenu("Weiteres");
JMenuItem[] items1 = { addMenuItem("Neue Cronik", menu1),
addMenuItem("Cronik laden", menu1),
addMenuItem("Cronik speichern", menu1),
addMenuItem("Programm beenden", menu1)
};
JMenuItem[] items2 = { addMenuItem("Aktuelle Person bearbeiten", menu2),
addMenuItem("Vater zeigen", menu2),
addMenuItem("Mutter zeigen", menu2),
addMenuItem("Nummer suchen", menu2),
addMenuItem("Wert suchen", menu2)
};
JMenuItem[] items3 = { addMenuItem("Stammbaum anzeigen", menu3),
addMenuItem("Stammbaum-liste", menu3),
addMenuItem("Personenliste", menu3),
};
JMenuItem[] items4 = { addMenuItem("Entwickler", menu4)};
menueleiste.add(menu1);
menueleiste.add(menu2);
menueleiste.add(menu3);
setJMenuBar(menueleiste);
// Infos #####################################################################################################
JLabel text[] =new JLabel [23];
text[0] =new JLabel("Name: ",JLabel.RIGHT);
text[1] =new JLabel("Vorname: ",JLabel.RIGHT);
text[2] =new JLabel("Geburtsname: ",JLabel.RIGHT);
text[3] =new JLabel("w. Name: ",JLabel.RIGHT);
text[4] =new JLabel("geboren am: ",JLabel.RIGHT);
text[5] =new JLabel("geboren in: ",JLabel.RIGHT);
text[6] =new JLabel("Geschlecht: ",JLabel.RIGHT);
text[7] =new JLabel("getauft am: ",JLabel.RIGHT);
text[8] =new JLabel("getauft in: ",JLabel.RIGHT);
text[9] =new JLabel("Konfession: ",JLabel.RIGHT);
text[10] =new JLabel("Beruf",JLabel.RIGHT);
text[11] =new JLabel("Notiz: ",JLabel.RIGHT);
text[12] =new JLabel(" ",JLabel.RIGHT);
text[13] =new JLabel(" ",JLabel.RIGHT);
text[14] =new JLabel(" ",JLabel.RIGHT);
text[15] =new JLabel(" ",JLabel.RIGHT);
text[16] =new JLabel("Ehepartner: ",JLabel.RIGHT);
text[17] =new JLabel("Hochzeit am: ",JLabel.RIGHT);
text[18] =new JLabel("Hochzeit in: ",JLabel.RIGHT);
text[19] =new JLabel("gestorben am: ",JLabel.RIGHT);
text[20] =new JLabel("gestorben in: ",JLabel.RIGHT);
text[21] =new JLabel("beerdigt am: ",JLabel.RIGHT);
text[22] =new JLabel("beerdigt in: ",JLabel.RIGHT);
gbc.weighty=0;
gbc.gridx = 0;
gbc.gridheight = 1;
gbc.gridwidth = 1;
gbc.gridy = 1;
for(int i = 0; i < text.length; i++){
gbl.setConstraints(text[i], gbc);
panel1.add(text[i]);
gbc.gridy = gbc.gridy + 1;
}
//Listen #####################################################################################################
gbc.gridy = 1;
gbc.gridx = 4;
gbc.gridheight = 1;
gbl.setConstraints(p_gesch , gbc);
panel1.add(p_gesch );
gbc.gridy = 19;
gbl.setConstraints(p_eltern , gbc);
panel1.add(p_eltern );
gbc.gridy = 10;
gbl.setConstraints(p_kinder , gbc);
panel1.add(p_kinder);
gbc.gridx = 4;
gbc.gridheight = 1;
gbc.gridy = 1;
p_geschwister_ändern.setMargin(new Insets(0, 0, 0, 0));
p_geschwister_ändern.setFont(new Font("Arial", Font.PLAIN,11));
gbl.setConstraints(p_geschwister_ändern , gbc);
p_geschwister_ändern.setVisible(false);
p_geschwister_ändern.addActionListener(new CMeinActionLauscher());
panel1.add(p_geschwister_ändern );
gbc.gridy = 10;
p_kinder_ändern.setMargin(new Insets(0, 0, 0, 0));
System.out.println(p_kinder_ändern.getFont());
p_kinder_ändern.setFont(new Font("Arial", Font.PLAIN,11));
gbl.setConstraints(p_kinder_ändern , gbc);
p_kinder_ändern.setVisible(false);
p_kinder_ändern.addActionListener(new CMeinActionLauscher());
panel1.add(p_kinder_ändern );
gbc.gridy = 19;
p_eltern_ändern.setMargin(new Insets(0, 0, 0, 0));
p_eltern_ändern.setFont(new Font("Arial", Font.PLAIN,11));
gbl.setConstraints(p_eltern_ändern , gbc);
p_eltern_ändern.setVisible(false);
p_eltern_ändern.addActionListener(new CMeinActionLauscher());
panel1.add(p_eltern_ändern);
gbc.gridy = 2;
gbc.gridx = 4;
gbc.gridheight = 8;
gbc.gridwidth = 2;
gbl.setConstraints(list, gbc);
panel1.add(list);
gbc.gridy = 11;
gbc.gridheight = 8;
gbl.setConstraints(list3, gbc);
panel1.add(list3);
gbc.gridy =20;
gbc.gridheight = 3;
gbl.setConstraints(list2, gbc);
panel1.add(list2);
list.addMouseListener(new ActionJList(list));
list2.addMouseListener(new ActionJList(list2));
list3.addMouseListener(new ActionJList(list3));
list.setBorder(BorderFactory.createLineBorder(Color.BLACK));
list2.setBorder(BorderFactory.createLineBorder(Color.BLACK));
list3.setBorder(BorderFactory.createLineBorder(Color.BLACK));
//Eintrageflächen #####################################################################################################
gbc.gridx = 1;
gbc.gridheight = 1;
gbc.gridwidth = 2;
gbc.gridy = 1;
for(int i = 0; i < textfeld.length; i++){
textfeld[i] =new JTextField(10);
textfeld[i].setDocument(new SetMaxText(35));
textfeld[i].setEditable(false) ;
}
for(int i = 0; i < 10; i++){
gbl.setConstraints(textfeld[i], gbc);
panel1.add(textfeld[i]);
gbc.gridy = gbc.gridy + 1;
}
gbc.gridy = 11;
gbc.gridwidth = 1;
gbl.setConstraints(p_beruf, gbc);
p_beruf.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXX");
p_beruf.addItemListener(new CMeinActionLauschercombo2());
panel1.add(p_beruf);
gbc.gridx = 2;
gbc.gridheight = 3;
p_beruf_ändern.addActionListener(new CMeinActionLauscher());
p_beruf_ändern.setVerticalAlignment(SwingConstants.TOP);
Font drehen_von_schrift = p_beruf_ändern.getFont();
AffineTransform at = new AffineTransform();
at.rotate( 1.57d );
p_beruf_ändern.setFont(drehen_von_schrift.deriveFont( at ));
gbl.setConstraints(p_beruf_ändern , gbc);
panel1.add(p_beruf_ändern);
p_beruf_ändern.setVisible(false);
gbc.gridheight = 4;
personbearbeitenlabel.setVerticalAlignment(SwingConstants.TOP);
Font drehen_von_schrift2 = personbearbeitenlabel.getFont();
personbearbeitenlabel.setFont(drehen_von_schrift2.deriveFont( at ));
gbl.setConstraints(personbearbeitenlabel , gbc);
panel1.add(personbearbeitenlabel);
personbearbeitenlabel.setVisible(true);
gbc.gridx = 1;
gbc.gridy = 12;
gbc.gridheight = 5;
p_notiz.setEditable(false);
gbl.setConstraints(p_notiz, gbc);
p_notiz.setLineWrap(true);
JScrollPane scroll_notiz =new JScrollPane();
scroll_notiz.getViewport().add(p_notiz);
scroll_notiz.getViewport().setView(p_notiz);
panel1.add(p_notiz);
gbc.gridy = 17;
gbc.gridheight = 1;
p_ehe.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXX");
gbl.setConstraints(p_ehe, gbc);
panel1.add(p_ehe);
p_ehe.addItemListener(new CMeinActionLauschercombo());
p_ehe.addMouseListener(new Actioncombo(p_ehe));
gbc.gridx = 2;
gbc.gridheight = 3;
p_ehe_ändern.addActionListener(new CMeinActionLauscher());
p_ehe_ändern.setVerticalAlignment(SwingConstants.TOP);
drehen_von_schrift = p_ehe_ändern.getFont();
p_ehe_ändern.setFont(drehen_von_schrift.deriveFont( at ));
gbl.setConstraints(p_ehe_ändern , gbc);
panel1.add(p_ehe_ändern);
gbc.gridheight = 1;
gbc.gridx = 1;
gbc.gridwidth = 1;
gbc.gridy = 18;
for(int i = 10; i < 16; i++){
gbl.setConstraints(textfeld[i], gbc);
panel1.add(textfeld[i]);
gbc.gridy = gbc.gridy + 1;
if (i==11) gbc.gridwidth = 2;
}
JLabel text21 =new JLabel("....................................................................................................................................................................................................................................................................................................................................................... ");
gbc.gridy = 24;
gbc.gridwidth = 6;
gbc.gridx=0;
gbl.setConstraints(text21 , gbc);
panel1.add(text21 );
//Bildfläsche #####################################################################################################
m_bildanzeige = new CBildLeinwand();
m_dateiname = null;
m_aktBild = null;
gbc.gridx=3;
gbc.gridy=1;
gbc.gridwidth = 1;
gbc.gridheight = 22;
m_bildanzeige.setPreferredSize(new Dimension(50, 100));
gbl.setConstraints(m_bildanzeige, gbc);
panel1.add(m_bildanzeige);
gbc.gridx=3;
gbc.gridy=23;
gbc.gridheight = 1;
gbl.setConstraints(bildlaufleiste, gbc);
bildlaufleiste.addAdjustmentListener(this);
panel1.add(bildlaufleiste);
//breite festlegen #####################################################################################################
gbc.gridwidth = 1;
gbc.gridheight = 1;
JLabel breite1 =new JLabel(".........................................");
gbc.gridy = 0;
gbc.gridx=0;
//gbc.weightx=0.1;
gbl.setConstraints(breite1 , gbc);
panel1.add(breite1);
JLabel breite2 =new JLabel(".........................................................................................");
gbc.gridy = 0;
gbc.gridx=1;
gbc.gridwidth = 2;
//gbc.weightx=0.2;
gbl.setConstraints(breite2 , gbc);
panel1.add(breite2 );
JLabel breite3 =new JLabel("...........................................................................................................................................");
gbc.gridy = 0;
gbc.gridx=3;
gbc.gridwidth = 1;
//gbc.weightx=0.4;
gbl.setConstraints(breite3 , gbc);
panel1.add(breite3 );
JLabel breite4 =new JLabel("................................................................");
gbc.gridy = 0;
gbc.gridx=4;
gbc.gridwidth = 2;
//gbc.weightx=0.1;
gbl.setConstraints(breite4 , gbc);
panel1.add(breite4 );
JLabel breite5 =new JLabel("....");
gbc.gridy = 0;
gbc.gridwidth = 1;
gbc.gridx=7;
//gbc.weightx=0.0;
gbl.setConstraints(breite5 , gbc);
panel1.add(breite5 );
//allgemeinenotizen #####################################################################################################
gbc.gridy = 25;
gbc.gridx = 0;
gbc.gridheight = 3;
gbc.gridwidth = 6;
gbc.weighty =1;
p_notallg.setEditable(true);
p_notallg.setLineWrap(true);
JScrollPane scroll_notiz2 =new JScrollPane();
scroll_notiz2.getViewport().add(p_notallg);
scroll_notiz2.getViewport().setView(p_notallg);
p_notallg.setBorder(BorderFactory.createLineBorder(Color.BLACK));
gbl.setConstraints(p_notallg, gbc);
panel1.add(p_notallg);
// Kopf schaltfläschen
Panel panel2 = new Panel();
panel2.setLayout(new FlowLayout());
gbc.gridx=0;
gbc.gridy=0;
gbl.setConstraints(p_num , gbc);
panel2.add(p_num);
gbc.gridx=1;
gbl.setConstraints(p_nummer , gbc);
panel2.add(p_nummer);
gbc.gridx=2;
gbc.gridheight = 1;
gbl.setConstraints(personbearbeitenbutton , gbc);
personbearbeitenbutton.setVisible(false);
panel2.add(personbearbeitenbutton);
gbc.gridx=2;
gbc.gridheight = 1;
gbl.setConstraints(personbearbeitenbuttonsave , gbc);
panel2.add(personbearbeitenbuttonsave);
personbearbeitenbuttonsave.setVisible(false);
personbearbeitenbuttonsave.addActionListener(new CMeinActionLauscher());
personbearbeitenbutton.addActionListener(new CMeinActionLauscher());