Ergebnis 1 bis 2 von 2

Thema: [Java] Einfache "Datenbank"

  1. #1

    Users Awaiting Email Confirmation

    [Java] Einfache "Datenbank"

    Hallo Leute, ich bin im Moment dabei eine kleine Idee umzusetzen.
    Ich möchte mit einem Array eine kleine Datenbank aufbauen.

    Ich hab in dem einen Fenster eine stinknormale Dateneingabe.
    In einem anderen Fenster soll gleichzeitig die eingegebenen Daten angesehen werden können.
    Klicke auf die Grafik für eine größere Ansicht 

Name:	Unbenannt.PNG 
Hits:	39 
Größe:	26,4 KB 
ID:	16001
    So, wie bringe ich nun meinen Array "String[][] datensatz" in die Klasse "Uebersicht"?

    Ich hab mir gedacht ich mache eine weitere Klasse namens Datensatz, und in Uebersicht werden dann je nach Menge der Datensätze Objekte erzeugt.

    Probeweise hab ich jetzt nur einen Datensatz für die Eingabe.
    Zitat Zitat
    Code (Dateneingabe):
     
    package Risikomanagement;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
     
    public class Dateneingabe extends Frame implements ActionListener, KeyListener
    {
        private MenuBar menubar;
        private Menu datamenu;
        private MenuItem showmenu;
        private MenuItem savemenu;
        private MenuItem loadmenu;
        private MenuItem exitmenu;
     
        private Button okaybutton;
        private Button savebutton;
        private Button searchbutton;
        private Button loadbutton;
        private Button diagrammbutton;
        private String datensatz[][] = new String[999][999];
        private int i = 1;
        private int j = 1;
     
        TextField tfabt ;
        TextField tfbenenn ;
        TextField tfmass ;
        TextField tfeinfl ;
        TextField tfschwer ;
        TextField tfrisik ;
        TextField tfterm ;    
     
        public Dateneingabe(String windowtitle)
        {
            super(windowtitle);
            setSize(640,480);       
            addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent we){
            System.exit(0);}});
            makeGUI();
            setVisible(true);
     
     
        }
        private void makeGUI()
        {
            GridLayout mainlayout = new GridLayout(3,1);
            setLayout(mainlayout);
     
            menubar = new MenuBar();
            datamenu = new Menu();
            showmenu = new MenuItem("DatenÜbersicht");
            savemenu = new MenuItem ("Daten sichern");
            loadmenu = new MenuItem ("Daten laden");
            exitmenu = new MenuItem ("Beenden");
     
            okaybutton = new Button ("Okay");
            savebutton = new Button ("Speichern");
            searchbutton = new Button ("Bestimmten Datensatz anzeigen");
            loadbutton = new Button ("Laden");
            diagrammbutton = new Button ("Diagrammauswertung");
     
            Panel titlePanel = new Panel();
            Label titleLabel = new Label ("Risikomanagemant");
     
            GridLayout dataLayout = new GridLayout(2,7);
            Panel dataField = new Panel ();
     
            Label abteilung = new Label("Abteilung");
            Label bennenung = new Label("Benennung des Risikos");
            Label massnahme = new Label("Maßnahme");
            Label einfluss = new Label ("Einfluss");
            Label schweregrad = new Label ("Schweregrad");
            Label risiko = new Label ("Risiko");
            Label termverant = new Label ("Termin/Verant.");
     
            tfabt = new TextField ();
            tfbenenn = new TextField();
            tfmass = new TextField();
            tfeinfl = new TextField();
            tfschwer = new TextField();
            tfrisik = new TextField();
            tfterm = new TextField();       
     
            datamenu.add(exitmenu);
            datamenu.add(loadmenu);
            datamenu.add(savemenu);
            datamenu.add(showmenu);
            menubar.add(datamenu);
            setMenuBar(menubar);
     
     
     
            GridLayout buttonLayout = new GridLayout (1,5);
            Panel buttonPanel = new Panel();
     
            titlePanel.add(titleLabel);
            add(titlePanel);
     
            dataField.setLayout(dataLayout);       
            dataField.add(abteilung);
            dataField.add(bennenung);
            dataField.add(massnahme);
            dataField.add(einfluss);
            dataField.add(schweregrad);
            dataField.add(risiko);
            dataField.add(termverant);
            dataField.add(tfabt);
            dataField.add(tfbenenn);
            dataField.add(tfmass);
            dataField.add(tfeinfl);
            dataField.add(tfschwer);
            dataField.add(tfrisik);
            dataField.add(tfterm);
            add (dataField);
     
     
            buttonPanel.setLayout(buttonLayout);
            buttonPanel.add(okaybutton);
            buttonPanel.add(savebutton);
            buttonPanel.add(searchbutton);
            buttonPanel.add(loadbutton);
            buttonPanel.add(diagrammbutton);
            add(buttonPanel);
     
            tfabt.addKeyListener(this);
            tfbenenn.addKeyListener(this);
            tfmass.addKeyListener(this);
            tfeinfl.addKeyListener(this);
            tfschwer.addKeyListener(this);
            tfrisik.addKeyListener(this);
            tfterm.addKeyListener(this);
     
            okaybutton.addActionListener(this);
            savebutton.addActionListener(this);
            loadbutton.addActionListener(this);
            searchbutton.addActionListener(this);
            diagrammbutton.addActionListener(this);        
            pack();
     
        }
     
        public static void main(String[] args) 
        {
            Dateneingabe dateneingabe = new Dateneingabe("Dateneingabe");
            Uebersicht uebersicht = new Uebersicht ("Übersicht");
        }
     
        public void actionPerformed(ActionEvent e) 
        {
            Object ae = e.getSource();
            if(ae == okaybutton)
            {
                if(i==8)
                {
                    j++;
                    i=1;               
                }
     
            }
            if(ae == savebutton)
            {
     
            }
            if(ae == loadbutton)
            {
     
            }
            if(ae == searchbutton)
            {
     
            }
            if(ae == diagrammbutton)
            {
     
            }
     
        }
     
        public void keyTyped(KeyEvent e) 
        {    
        }
        public void keyPressed(KeyEvent e) 
        {
           int ke = e.getKeyCode();
           if (ke == KeyEvent.VK_ENTER)
           {
               if (i == 1)
               {
                   tfbenenn.requestFocus();
               }
               if (i == 2)
               {
                   tfmass.requestFocus();
               }
               if (i == 3)
               {
                   tfeinfl.requestFocus();
               }
               if (i == 4)
               {
                   tfschwer.requestFocus();
               }
               if (i == 5)
               {
                   tfrisik.requestFocus();
               }
               if (i == 6)
               {
                   tfterm.requestFocus();
               }
               if (i == 7)
               {
                   tfabt.requestFocus();
                   datensatzspeichern();
               }
               i++;
     
           }
        }
     
        public void datensatzspeichern()
        {
                datensatz[1][j] = tfabt.getText();
                datensatz[2][j] = tfbenenn.getText();
                datensatz[3][j] = tfmass.getText();
                datensatz[4][j] = tfeinfl.getText();
                datensatz[5][j] = tfschwer.getText();
                datensatz[6][j] = tfrisik.getText();
                datensatz[7][j] = tfterm.getText();
                tfabt.setText("");
                tfbenenn.setText("");
                tfmass.setText("");
                tfeinfl.setText("");
                tfschwer.setText("");
                tfrisik.setText("");
                tfterm.setText("");
                Datensatz datafield = new Datensatz(datensatz,i,j);
            }
     
        public void keyReleased(KeyEvent e) 
        {
        }
     
    }
     
     
    Zitat Zitat
    Code (Uebersicht):
     
    package Risikomanagement;
     
    import java.io.*;
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
     
     
     
    public class Uebersicht extends Frame
    {
     
        public Uebersicht(String windowtitle)
        {
            super(windowtitle);
            setSize(300,300);
            addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent we){
            dispose();}});
            makeGUI();
            setVisible(true);
        }
     
        private void makeGUI()
        {
            setLayout(new GridLayout(1,7));
            Panel p = new Panel();
     
            Label abteilung = new Label("Abteilung");
            Label benennung = new Label("Benennung des Risikos");
            Label massnahme = new Label("Maßnahme");
            Label einfluss = new Label ("Einfluss");
            Label schweregrad = new Label ("Schweregrad");
            Label risiko = new Label ("Risiko");
            Label termverant = new Label ("Termin/Verant.");
     
            add (abteilung);
            add (benennung);
            add(massnahme);
            add(einfluss);
            add(schweregrad);
            add(risiko);
            add(termverant);
            pack();
        }
        public void actualization(Panel p)
        {
            add(p);
            repaint();
     
     
        }
     
    }
     
     
    Zitat Zitat
    Code (Datensatz):
     
     
     
    package Risikomanagement;
     
    import java.awt.*;
     
    public class Datensatz extends Frame
        {
         public int i, j;
         private GridLayout gl;
         private Panel p;
         private TextField abteilung;
         private TextField benennung;
         private TextField massnahme;
         private TextField einfluss;
         private TextField schweregrad;
         private TextField risiko;
         private TextField terminverant;
     
     
         public String[][] datensatz;
         public Datensatz(String[][] datensatz,int i,int j)
            {
               this.j = j;
               this.datensatz= datensatz;
               buildTable();
               fillTable();
     
            }
         public void buildTable()
         {
             gl = new GridLayout(1,7);
             p = new Panel();
             abteilung = new TextField();
             benennung = new TextField();
             massnahme = new TextField();
             einfluss = new TextField();
             schweregrad = new TextField();
             risiko = new TextField();
             terminverant = new TextField();
     
             p.setLayout(gl);
             p.add(abteilung);
             p.add(benennung);
             p.add(massnahme);
             p.add(einfluss);
             p.add(schweregrad);
             p.add(risiko);
             p.add(terminverant);
     
     
         }
         public void fillTable()
         {
             abteilung.setText(datensatz[1][j]);
             benennung.setText(datensatz[2][j]);
             massnahme.setText(datensatz[3][j]);
             einfluss.setText(datensatz[4][j]);
             schweregrad.setText(datensatz[5][j]);
             risiko.setText(datensatz[6][j]);
             terminverant.setText(datensatz[7][j]);
             Uebersicht actual = null;
             actual.actualization(p);
         }
     
     
        }
     
     
     
    Meine Idee ist bestimmt voll bescheuert

  2. #2
    Schon mal an eine echte Datenbank nachgedacht? z.B. SQLite?
    Ansonsten mach dich vertraut mit dem EVA-Prinzip.
    Und das, was du suchst, sind sog. Listener.

    Außerdem ist String[999][999] nicht grad effizient, da der Speicher für dieses Array sofort reserviert wird.
    Wenn du nur ein Datensatz speichert, hast du zu viel Speicher verbraucht, und wenn du mehr als 999 Datensätze speichern möchtest, hast du auch verloren, da du ein Array nur sehr umständlich erweitern kannst (neues anlegen und das alte Array in das neue kopieren). Hier wäre eine verkettete Liste (z.B. ArrayList) angebracht.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •