From 9a8663bb444437b9bf61a84c4244568a8acf0e1f Mon Sep 17 00:00:00 2001 From: Christopher Feichtenbeiner Date: Wed, 4 Nov 2020 08:54:32 +0000 Subject: [PATCH] =?UTF-8?q?Dateien=20hochladen=20nach=20=E2=80=9E=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit initial commit --- AdressmanagementModel.java | 172 +++++++++++++++++++++++++++ AdressmanagementView.form | 161 ++++++++++++++++++++++++++ AdressmanagementView.java | 230 +++++++++++++++++++++++++++++++++++++ ControllerOpen.java | 68 +++++++++++ Start.java | 45 ++++++++ 5 files changed, 676 insertions(+) create mode 100644 AdressmanagementModel.java create mode 100644 AdressmanagementView.form create mode 100644 AdressmanagementView.java create mode 100644 ControllerOpen.java create mode 100644 Start.java diff --git a/AdressmanagementModel.java b/AdressmanagementModel.java new file mode 100644 index 0000000..adf1bd5 --- /dev/null +++ b/AdressmanagementModel.java @@ -0,0 +1,172 @@ +///* +// * To change this license header, choose License Headers in Project Properties. +// * To change this template file, choose Tools | Templates +// * and open the template in the editor. +// */ +// +//package adressmanagement.model; +// +//import java.io.BufferedInputStream; +//import java.io.BufferedReader; +//import java.io.File; +//import java.io.FileInputStream; +//import java.io.FileNotFoundException; +//import java.io.IOException; +//import java.io.InputStreamReader; +//import java.io.UnsupportedEncodingException; +// +///** +// * +// * @author chris +// */ +//public class AdressmanagementModel +//{ +// private String text; +// public AdressmanagementModel() +// { +// text = "?"; +// } +// public String getText() +// { +// return text; +// } +// public void readFromFile(File f) throws FileNotFoundException, UnsupportedEncodingException, IOException +// { +// //Streams +// FileInputStream fis = new FileInputStream(f); +// InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); +// BufferedReader in = new BufferedReader(isr); +// StringBuilder data = new StringBuilder(); +// String line = ""; +// while((line = in.readLine()) != null) +// { +// data.append(line); +// data.append("\n"); +// } +// text = data.toString(); +// in.close(); +// //BufferedInputStream bin = new BufferedInputStream(fis); +// //WICHTIG: ObjectInputStream, ObjectOutputStream --> readObject oder writeObject = Serialisierung und damit Persistenz +// +// } +//} +///* +// * To change this license header, choose License Headers in Project Properties. +// * To change this template file, choose Tools | Templates +// * and open the template in the editor. +// */ + +package adressmanagement.model; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; +import javax.swing.table.AbstractTableModel; + +/** + * + * @author le + */ +public class AdressmanagementModel extends AbstractTableModel +{ + private ArrayList> daten; + private ArrayList adressEintraegeDaten; + private ArrayList adressEintraegeNamen; + + public AdressmanagementModel() + { + adressEintraegeDaten = new ArrayList<>(); + adressEintraegeNamen = new ArrayList<>(); + daten = new ArrayList<>(); + adressEintraegeNamen.add("Name"); + adressEintraegeDaten.add("Lehner"); + adressEintraegeNamen.add("Telefon"); + adressEintraegeDaten.add("122345"); + daten.add(adressEintraegeDaten); + } + + @Override + public int getRowCount() + { + return daten.size(); + } + + @Override + public int getColumnCount() + { + return adressEintraegeDaten.size(); + } + + @Override + public Object getValueAt(int row, int col) + { + return daten.get(row).get(col); + } + @Override + public void setValueAt(Object value, int row, int col) + { + daten.get(row).set(col, (String)value); + } + + @Override + public boolean isCellEditable(int row, int col) + { + return true; + } + + @Override + public String getColumnName(int col) + { + return adressEintraegeNamen.get(col); + } + + public void eintragHinzufuegen() + { + adressEintraegeDaten = new ArrayList<>(); + adressEintraegeNamen.forEach(s -> adressEintraegeDaten.add(s)); + daten.add(adressEintraegeDaten); + this.fireTableDataChanged(); + } + + public void eintragLoeschen(int row) + { + daten.remove(row); + this.fireTableDataChanged(); + } + + public void spalteHinzufuegen(String name) + { + adressEintraegeNamen.add(name); + } + + public void datenSpeichern(File datei) throws FileNotFoundException, IOException + { + FileOutputStream fos = new FileOutputStream(datei); + BufferedOutputStream bos = new BufferedOutputStream(fos); + ObjectOutputStream oos = new ObjectOutputStream(bos); + oos.writeObject(daten); + oos.writeObject(adressEintraegeNamen); + oos.flush(); + oos.close(); + } + + public void datenLesen(File datei) throws FileNotFoundException, IOException, ClassNotFoundException + { + FileInputStream fis = new FileInputStream(datei); + BufferedInputStream bis = new BufferedInputStream(fis); + ObjectInputStream ois = new ObjectInputStream(bis); + daten = (ArrayList>)ois.readObject(); + adressEintraegeNamen = (ArrayList)ois.readObject(); + adressEintraegeDaten = daten.get(daten.size()-1); + ois.close(); + this.fireTableDataChanged(); + } + +} diff --git a/AdressmanagementView.form b/AdressmanagementView.form new file mode 100644 index 0000000..24f4d21 --- /dev/null +++ b/AdressmanagementView.form @@ -0,0 +1,161 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AdressmanagementView.java b/AdressmanagementView.java new file mode 100644 index 0000000..94ec615 --- /dev/null +++ b/AdressmanagementView.java @@ -0,0 +1,230 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package adressmanagement.view; + +/** + * + * @author chris + */ +public class AdressmanagementView extends javax.swing.JFrame +{ + + /** + * Creates new form EditorView + */ + public AdressmanagementView() + { + initComponents(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() + { + + FileChooser = new javax.swing.JFileChooser(); + pmFile = new javax.swing.JPopupMenu(); + pmOpen = new javax.swing.JMenuItem(); + tbToolbar = new javax.swing.JToolBar(); + btnOpen = new javax.swing.JButton(); + btnSave = new javax.swing.JButton(); + lblStatus = new javax.swing.JLabel(); + mainPanel = new javax.swing.JPanel(); + table1 = new adressmanagement.view.Table(); + Menu = new javax.swing.JMenuBar(); + mnuFile = new javax.swing.JMenu(); + mnuOpen = new javax.swing.JMenuItem(); + mnuSave = new javax.swing.JMenuItem(); + mnuEdit = new javax.swing.JMenu(); + + pmOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/adressmanagement/view/icons/Open24.gif"))); // NOI18N + pmOpen.setToolTipText("Open"); + pmFile.add(pmOpen); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + setTitle("Adressverwaltung"); + + tbToolbar.setRollover(true); + + btnOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/adressmanagement/view/icons/Open24.gif"))); // NOI18N + btnOpen.setToolTipText("Open"); + btnOpen.setFocusable(false); + btnOpen.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnOpen.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + tbToolbar.add(btnOpen); + + btnSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/adressmanagement/view/icons/Save24.gif"))); // NOI18N + btnSave.setToolTipText("Save"); + btnSave.setFocusable(false); + btnSave.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + btnSave.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + tbToolbar.add(btnSave); + + getContentPane().add(tbToolbar, java.awt.BorderLayout.PAGE_START); + + lblStatus.setText("File:"); + lblStatus.setComponentPopupMenu(pmFile); + getContentPane().add(lblStatus, java.awt.BorderLayout.PAGE_END); + + mainPanel.setLayout(new java.awt.GridLayout(1, 0)); + + mainPanel.add(table1); + + getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); + + mnuFile.setMnemonic('F'); + mnuFile.setText("File"); + + mnuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/adressmanagement/view/icons/Open24.gif"))); // NOI18N + mnuOpen.setText("Open"); + mnuOpen.setToolTipText(""); + mnuFile.add(mnuOpen); + + mnuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/adressmanagement/view/icons/Save24.gif"))); // NOI18N + mnuSave.setText("Save"); + mnuFile.add(mnuSave); + + Menu.add(mnuFile); + + mnuEdit.setMnemonic('E'); + mnuEdit.setText("Edit"); + Menu.add(mnuEdit); + + setJMenuBar(Menu); + + setSize(new java.awt.Dimension(756, 501)); + setLocationRelativeTo(null); + }// //GEN-END:initComponents + + /** + * @param args the command line arguments + */ + public static void main(String args[]) + { + /* Set the Nimbus look and feel */ + // + /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. + * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html + */ + try + { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) + { + if ("Nimbus".equals(info.getName())) + { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } + catch (ClassNotFoundException ex) + { + java.util.logging.Logger.getLogger(AdressmanagementView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + catch (InstantiationException ex) + { + java.util.logging.Logger.getLogger(AdressmanagementView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + catch (IllegalAccessException ex) + { + java.util.logging.Logger.getLogger(AdressmanagementView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + catch (javax.swing.UnsupportedLookAndFeelException ex) + { + java.util.logging.Logger.getLogger(AdressmanagementView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + // + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() + { + public void run() + { + new AdressmanagementView().setVisible(true); + } + }); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JFileChooser FileChooser; + private javax.swing.JMenuBar Menu; + private javax.swing.JButton btnOpen; + private javax.swing.JButton btnSave; + private javax.swing.JLabel lblStatus; + private javax.swing.JPanel mainPanel; + private javax.swing.JMenu mnuEdit; + private javax.swing.JMenu mnuFile; + private javax.swing.JMenuItem mnuOpen; + private javax.swing.JMenuItem mnuSave; + private javax.swing.JPopupMenu pmFile; + private javax.swing.JMenuItem pmOpen; + private adressmanagement.view.Table table1; + private javax.swing.JToolBar tbToolbar; + // End of variables declaration//GEN-END:variables + + /** + * @return the btnOpen + */ + public javax.swing.JButton getBtnOpen() + { + return btnOpen; + } + + /** + * @return the btnSave + */ + public javax.swing.JButton getBtnSave() + { + return btnSave; + } + + /** + * @return the lblStatus + */ + public javax.swing.JLabel getLblStatus() + { + return lblStatus; + } + + /** + * @return the mnuOpen + */ + public javax.swing.JMenuItem getMnuOpen() + { + return mnuOpen; + } + + /** + * @return the mnuSave + */ + public javax.swing.JMenuItem getMnuSave() + { + return mnuSave; + } + + /** + * @return the pmOpen + */ + public javax.swing.JMenuItem getPmOpen() + { + return pmOpen; + } + /** + * @return the FileChooser + */ + public javax.swing.JFileChooser getFileChooser() + { + return FileChooser; + } +} diff --git a/ControllerOpen.java b/ControllerOpen.java new file mode 100644 index 0000000..c18ba3d --- /dev/null +++ b/ControllerOpen.java @@ -0,0 +1,68 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package adressmanagement.controller; + +import adressmanagement.model.AdressmanagementModel; +import adressmanagement.view.AdressmanagementView; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JFileChooser; + +/** + * + * @author chris + */ +public class ControllerOpen implements ActionListener +{ + private AdressmanagementView view; + private AdressmanagementModel model; + + public ControllerOpen() + { + } + + public ControllerOpen(AdressmanagementView view, AdressmanagementModel model) + { +// lasteSelected = Preferences + this.view = view; + this.model = model; + } + + public void registerEvents() + { + view.getBtnOpen().addActionListener(this); + } + @Override + public void actionPerformed(ActionEvent e) + { + int choice = view.getFileChooser().showOpenDialog(view); + if (choice == JFileChooser.APPROVE_OPTION) + { + File selectedFile = view.getFileChooser().getSelectedFile(); + view.getLblStatus().setText("File +" + selectedFile.getAbsolutePath()); +// try +// { +// model.readFromFile(selectedFile); +// String text = model.getText(); +// } +// catch (UnsupportedEncodingException ex) +// { +// view.getLblStatus().setText(ex.toString()); +// } +// catch (IOException ex) +// { +// view.getLblStatus().setText(ex.toString()); +// } + } + + } +} diff --git a/Start.java b/Start.java new file mode 100644 index 0000000..90d6068 --- /dev/null +++ b/Start.java @@ -0,0 +1,45 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package adressmanagement; + +import adressmanagement.controller.ControllerOpen; +import adressmanagement.model.AdressmanagementModel; +import adressmanagement.view.AdressmanagementView; +import javax.swing.JOptionPane; +import javax.swing.UIManager; + +/** + * + * @author chris + */ +public class Start +{ + public Start() + { + AdressmanagementView view = new AdressmanagementView(); + AdressmanagementModel model = new AdressmanagementModel(); + + ControllerOpen ctrOpen = new ControllerOpen(view, model); + ctrOpen.registerEvents(); + view.setVisible(true); + + } + + public static void main(String[] args) + { + try + { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } + catch (Exception ex) + { + JOptionPane.showMessageDialog(null, ex.toString()); + } + new Start(); + } + +}