Avatar billede engelbrett Nybegynder
18. december 2003 - 19:31 Der er 68 kommentarer og
1 løsning

En vector i en vector plus visning af hentet fil.

Hej

Vi er lidt af en knibe. Det overordnede problem består i at vi ikke kan holde styr på vores vectorer. Kernen i programmet er at der findes en vector (hovedvareVector) som indeholder nogle andre vectorer (systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector). Man navigere via nogle comboboxe i ForsideGUI, hvor man kan vælge en vector og således komme ind i hovedvareGUI. Her er der endnu en combobox, der skal fyldes op med Vare. Dette gøres ved at trykke på opret vare og skrive data ind i textfields'ne. 
Dette kan vi godt problemet er når man skal vælge en vare fra comboboxen i hovedvareGUI så for vi en ArrayIndexOutOfBoundsException. Vi tror det har noget at gøre med opbygningen af vectorerne.

Man gemmer oplysninger ved at lukke programmet. Det lykkedes også godt nok men vi kan ikke hente oplysningerne ind i programmet igen vi har prøvet i klassen Start men det virker ikke.

Det er måske et lidt omfattende spørgsmål så der er gode point at hente hvis nogen kan hjælpe.



Vores klasser ser således ud!

-----------Forside GUI---------------------
import java.awt.event.ActionListener;
import java.awt.*;
/*
* ForsideGUI.java
*
* Created on 12. december 2003, 20:18
*/

/**
*
* @author  Mads Rydahl
*/
public class ForsideGUI extends javax.swing.JFrame {
   
    // Variables declaration - do not modify
    private javax.swing.JComboBox forsideComboBox;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel banner;
    private int selected;
    public GUIController gui;
    // End of variables declaration
    /**
    * Constructor ForsideGUI.
    */
    /** Creates new form ForsideGUI */
   
    public ForsideGUI(GUIController gui) {
        initComponents();
        this.gui = gui;
    }

             
    /** 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.
    */
    private void initComponents() {
        banner = new javax.swing.JLabel();
        forsideComboBox = new javax.swing.JComboBox();
        jTextField1 = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();

        getContentPane().setLayout(null);
     

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        forsideComboBox.setFont(new java.awt.Font("Verdana", 1, 18));
        forsideComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Hovedvaregrupper", "Systemvarer", "Økologiske varer", "Saft", "Øl", "Almindelige varer", "Emballage" }));
        forsideComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                forsideComboBoxActionPerformed(evt);
            }
        });

        getContentPane().add(forsideComboBox);
        forsideComboBox.setBounds(60, 240, 390, 30);

//        jTextField1.addActionListener(new java.awt.event.ActionListener() {
//            public void actionPerformed(java.awt.event.ActionEvent evt) {
//                jTextField1ActionPerformed(evt);
//            }
//        });
       
        getContentPane().add(jTextField1);
        jTextField1.setBounds(660, 270, 90, 30);

        jLabel1.setFont(new java.awt.Font("Verdana", 1, 14));
        jLabel1.setText("Lagerstatus:");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(660, 240, 120, 30);

        jLabel2.setFont(new java.awt.Font("Verdana", 1, 14));
        jLabel2.setText("kr.");
        getContentPane().add(jLabel2);
        jLabel2.setBounds(750, 270, 21, 30);

        jButton1.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton1.setText("Udskriv lagerv\u00e6rdi");
        getContentPane().add(jButton1);
        jButton1.setBounds(590, 330, 180, 30);
       
        banner.setFont(new java.awt.Font("Century", 0, 22));
        banner.setText("Frugt & Gr\u00f8nt Plantagen");
        banner.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1)));
        getContentPane().add(banner);
        banner.setBounds(10, 20, 270, 40);
       
        repaint();
        pack();
        show();
    }

//    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
//        // Add your handling code here:
//    }

    private void forsideComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
        selected = forsideComboBox.getSelectedIndex();
        this.selected = selected;
        gui.setSelectedforsideComboBox(selected);
       
    }
   
    public int getSelected() {
    System.out.println("ForsideGUIgetSelected"+selected);
    return selected;
    }
   
    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {
        gui.gemVare();
        System.exit(0);
    }

}

---------------GUI Controller---------------------
import java.awt.event.*;
import java.util.*;
/**
* Mads (20022663) Jens (20021304) Kalle (20020924)
* @author mrydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class GUIController {

    //Variabler erklæres
    private ForsideGUI minForsideGUI;
    private HovedvareGUI minHovedvareGUI;
    private VareGUI minVareGUI;
    private OpretNyVareGUI minOpretNyVareGUI;
    private LagerController minLagerController;
           
    public GUIController() {
   
   
    //Instantiering af LagerControlleren
    minLagerController = new LagerController(this);
           
    //ved instatiering af ForsideGUI sendes this med.
    //Dette betyder at objektet
    //GUIController sendes med, hvorved attributter i
    //GUIController kan kaldes fra ForsideGUI
    minForsideGUI = new ForsideGUI(this);
    minForsideGUI.setBounds(10, 10, 800, 600);
   
    minHovedvareGUI = new HovedvareGUI(this);
    minHovedvareGUI.setVisible(false);
    minHovedvareGUI.setBounds(10, 10, 800, 600);
   
    minVareGUI = new VareGUI(this);
    minVareGUI.setVisible(false);
    minVareGUI.setBounds(10, 10, 800, 600);
   
    minOpretNyVareGUI = new OpretNyVareGUI(this);
    minOpretNyVareGUI.setVisible(false);
    minOpretNyVareGUI.setBounds(10, 10, 800, 600);
   
    System.out.println("alle GUI");
           
    }
   
   

    public void gemVare(){
    minLagerController.saveHovedvareVector(getHovedVareVector(),"TotalGemt.ser");
    }
   
       
    public double getSamletSaldo(double SamletSaldo){
        return SamletSaldo;
    }
   
   
    public Vector getHovedVareVector() {
        return minLagerController.getHovedVareVector();
    }
   
    public HovedvareGUI getHovedVare() {
        return minHovedvareGUI;
    }
   
    public ForsideGUI getForsideGUI() {
        return minForsideGUI;
   
    }
   
    public VareGUI getVareGUI() {
        return minVareGUI;
    }
   
    public void sendVare(String[] vare) {
        int selected = minForsideGUI.getSelected();
        minLagerController.addVare(vare, selected);
    }
   
    //Håndtering af GUIKlassernes synlighed
    public void gotoForside() {
        minForsideGUI.setVisible(true);
        minHovedvareGUI.setVisible(false);
        System.out.println("Der blev trykket på Forside");
    }
    public void gotoHovedVare() {
        minHovedvareGUI.show();
    }
    public void gotoVareGUI(String vareGruppe, String[] vare) {
        minVareGUI.show();
        minVareGUI.setText(vareGruppe, vare);
    }
    public void gotoOpretNyVare() {
        minOpretNyVareGUI.setVisible(true);
        minHovedvareGUI.setVisible(false);
        System.out.println("Der blev trykket på Opret Vare");
    }
   
       
    //hovedvaregrupperne er instantieret som integers og vises
    //ved tryk fra forsideGUI
    public void setSelectedforsideComboBox(int selected) {
        if (selected == 1) {
                minHovedvareGUI.setVisible(true);
            minForsideGUI.dispose();
        }   
        if (selected == 2) {
                minHovedvareGUI.setVisible(true);
            minForsideGUI.dispose();
        }   
        if (selected == 3) {
                minHovedvareGUI.setVisible(true);
            minForsideGUI.dispose();
        }       
        if (selected == 4) {
                minHovedvareGUI.setVisible(true);
            minForsideGUI.dispose();
        }
        if (selected == 5) {
                minHovedvareGUI.setVisible(true);
            minForsideGUI.dispose();
        }
        if (selected == 6) {
                minHovedvareGUI.setVisible(true);   
            minForsideGUI.dispose();
        }   
    }
           

}

--------------------HovedvareGUI---------------------

t javax.swing.*;
import java.awt.event.*;
import java.util.Iterator;
import java.util.Vector;
/**
* HovedvareGUI.java
* Created on 12. december 2003, 20:45
* @author  Mads Rydahl
*/
public class HovedvareGUI extends javax.swing.JFrame {
   
    private int selected;
    private JComboBox hovedvareGUIComboBox;
    private JLabel jLabel1;
    private JLabel jLabel2;
    private JTextField jTextField1;
    private GUIController gui;
    private JButton jButton1;
    private JButton jButton2;
    private JLabel banner;


   
   
   
    /** Creates new form HovedvareGUI */
    public HovedvareGUI(GUIController gui) {
        initComponents();
        this.gui = gui;
    }
   
    /** 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.
    */
   
    private void initComponents() {
        hovedvareGUIComboBox = new JComboBox();
        jButton1 = new JButton();
        jLabel1 = new JLabel();
        jTextField1 = new JTextField();
        jLabel2 = new JLabel();
        jButton2 = new JButton();
        banner = new JLabel();
        getContentPane().setLayout(null);


        //Lytter på luk-ned knappen i højre hjørne
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        hovedvareGUIComboBox.setFont(new java.awt.Font("Verdana", 1, 18));
        hovedvareGUIComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                hovedvareGUIComboBoxActionPerformed(evt);
            }
        });

        getContentPane().add(hovedvareGUIComboBox);
        hovedvareGUIComboBox.setBounds(60, 240, 390, 25);

        jButton1.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton1.setText("Opret vare");
        jButton1.setActionCommand("Opret Vare");
        getContentPane().add(jButton1);
        jButton1.setBounds(590, 330, 180, 30);

        jLabel1.setFont(new java.awt.Font("Verdana", 1, 14));
        jLabel1.setText("Pris:");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(660, 240, 120, 30);

        getContentPane().add(jTextField1);
        jTextField1.setBounds(660, 270, 90, 30);

        jLabel2.setFont(new java.awt.Font("Verdana", 1, 14));
        jLabel2.setText("kr.");
        getContentPane().add(jLabel2);
        jLabel2.setBounds(750, 276, 21, 20);

        jButton2.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton2.setText("Forside");
        jButton2.setActionCommand("Forside");
        getContentPane().add(jButton2);
        jButton2.setBounds(60, 450, 170, 30);
       
        banner.setFont(new java.awt.Font("Century", 0, 22));
        banner.setText("Frugt & Gr\u00f8nt Plantagen");
        banner.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1)));
        getContentPane().add(banner);
        banner.setBounds(10, 20, 270, 40);
       
        jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                gui.gotoOpretNyVare();
            }
        });
       
        jButton2.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                gui.gotoForside();
            }
        });

        getContentPane().add(jButton2);
       

        pack();
    }

           
   
    private void hovedvareGUIComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
       
        selected = hovedvareGUIComboBox.getSelectedIndex();
               
        this.selected = selected;
        System.out.println("testSelected"+selected);
       
      try {
        Vector HVVector = gui.getHovedVareVector();
        int hovedVare = gui.getForsideGUI().getSelected();     
        Vector vareVector = (Vector)HVVector.get(hovedVare);
       
       
        String navn = ("");
      if (hovedVare == 1) {
            navn = ("Systemvarer");
           
      }
      if (hovedVare == 2) {
            navn = ("Øko.Varer");
      }
      if (hovedVare == 3) {
            navn = ("Saft");
      }
      if (hovedVare == 4) {
            navn = ("Øl");
      }
      if (hovedVare == 5) {
            navn = ("Alm.Varer");
      }
      if (hovedVare == 6) {
            navn = ("Emballage");
      }
       
        String[] vare = (String[])vareVector.get(selected);
        System.out.println("selectedvare i hovedvareGUI "+selected);
       
        gui.gotoVareGUI(navn, vare);
      } 
        catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("ArrayIndexOutOfBoundsException");
        }
    }
   
   
     
    /**
    * @param args the command line arguments
    *
    */
    public void setComboBox(Vector visVector) {
   
        Iterator visIterator = visVector.iterator();
       
        while (visIterator.hasNext() == true) {
       
            String[] visText = (String[])visIterator.next();
       
            String data1 = visText[0];
            String data2 = visText[1];
            String data3 = visText[2];
            String data4 = visText[3];
            String data5 = visText[4];
                                           
        String visning = (String) (""+data1+", "+data2+", "+data3+", "+data4+", "+data5+"");
       
       
          hovedvareGUIComboBox.addItem(visning);
          //jComboBox1.toString();
        }
               
    }
   
 
    /**
    * Method dispose.
    * @param i
    * @param i1
    * @param i11
    */
    /** Exit the Application */
   
    private void exitForm(java.awt.event.WindowEvent evt) {
          gui.gemVare();
        System.exit(0);
    }
   
    public void dispose(int i, int i1, int i11) {
    }

}

--------------------Lager---------------------------

import java.util.Vector;

/**
* Mads (20022663) Jens (20021304) Kalle (20020924)
* @author mrydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/

public class Lager {
   
    public Vare nyVare;
    private Vector hovedVareVector, systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector;
   
   
    public Lager(){
   
       
    hovedVareVector = new Vector();
   
   
    systemVareVector = new Vector();
    hovedVareVector.add(systemVareVector);
   
    oekoVareVector = new Vector();
    hovedVareVector.add(oekoVareVector);
   
    saftVector = new Vector();
    hovedVareVector.add(saftVector);
   
    oelVector = new Vector();
    hovedVareVector.add(oelVector);
   
    almVareVector = new Vector();
    hovedVareVector.add(almVareVector);
   
    emballageVector = new Vector();
    hovedVareVector.add(emballageVector);
   
   
   
   
    }
   
    public Vector getHVVector() {
    return hovedVareVector;
    }   
    public void udskrivVector(){
        System.out.println("hovedvare:"+hovedVareVector);
    }
}

-----------------LagerController-----------------

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.*;
import java.util.Vector;

/**
* @author Mads Rydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/

public class LagerController implements Serializable
{
    public String NewHovedvareVector;
    public Vare minVare;
    private FileOutputStream outStream;
    private ObjectOutputStream out;
    private ObjectInputStream in;
    private GUIController gui;
   
    private Vector hovedVareVector, systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector;
   
   
   
    Lager mitLager = new Lager();
   
   
       
   
        /**
    * Constructor LagerController.
    */
    public LagerController(GUIController gui) {
       
        this.gui = gui;
   
   
    }
   
   
   
    //ny vector, hvor...
    public void addVare(String[] vare, int selected) {
   
    Vector denneVector = mitLager.getHVVector();
   
    if(selected == 1) {
   
        System.out.println("addvareSelected"+selected);
   
        Vector sysVare = (Vector)denneVector.get(0);
       
        sysVare.add(vare);
        gui.getHovedVare().setComboBox(sysVare);
        System.out.println("sysVare "+sysVare.toString());
        mitLager.udskrivVector();
    }
    if(selected == 2) {
       
        Vector ecoVare = (Vector)denneVector.get(1);
        ecoVare.add(vare);
        gui.getHovedVare().setComboBox(ecoVare);
        System.out.println("ecoVare "+ecoVare.toString());
        mitLager.udskrivVector();
    }
    if(selected == 3) {
   
        Vector saftVare = (Vector)denneVector.get(2);
       
        saftVare.add(vare);
        gui.getHovedVare().setComboBox(saftVare);
        System.out.println("saft: "+saftVare.toString());
        mitLager.udskrivVector();
    }
    if(selected == 4) {
   
        Vector oel = (Vector)denneVector.get(3);
       
        oel.add(vare);
        gui.getHovedVare().setComboBox(oel);
        System.out.println("Øl: "+oel.toString());
        mitLager.udskrivVector();
    }
    if(selected == 5) {
   
        Vector alm = (Vector)denneVector.get(4);
       
        alm.add(vare);
        gui.getHovedVare().setComboBox(alm);
        System.out.println("almVare: "+alm.toString());
        mitLager.udskrivVector();
    }
    if(selected == 6) {
   
        Vector emballage = (Vector)denneVector.get(5);
       
        emballage.add(vare);
        gui.getHovedVare().setComboBox(emballage);
        System.out.println("emballage: "+emballage.toString());
        mitLager.udskrivVector();
    }
   
   
    }
   
    public Vector getHovedVareVector() {
    return mitLager.getHVVector();
    }
   
   
    public void nedlaegVare(){
       
       
    }
   
       
    public void getVareSpec(){
       
    }
   
    public void changeVareSpec(){
   
    }
   
    public void showPopUp() {
       
   
    }
   
   
   
    public void printVector(){
       
       
    }
   
   
   
    /**Serialisering af varerne som objekter
    *
    *
    * */
   
   


  public void saveHovedvareVector(Vector obj, String filnavn) //throws IOException
  {
     
    try
    {
      FileOutputStream outStream = new FileOutputStream("TotalGemt.ser");
      ObjectOutputStream out = new ObjectOutputStream(outStream);
      out.writeObject(hovedVareVector);
      out.close();
    }
    catch (IOException e)
    {
          System.out.println("Fejl: "+e);
        }
  }

  public static Object hent(String filnavn) throws Exception
  {
   
      FileInputStream out = new FileInputStream("TotalGemt.ser");
      ObjectInputStream in = new ObjectInputStream(out);
      Object obj = in.readObject();
      in.close();
      return obj;
  }

       
       
    public void getHovedvareList(){
       
       
    }
   
    public void getHovedvarePrisListe(){
       
    }
   
    public void setAddedHovedvarePris(){
       
    }
   
    public void getPrisListe(){
       
    }
   
    public void setAddedPris(){
       
    }
   
    public double getSamletSaldo(double SamletSaldo){
        return SamletSaldo;
    }
   
   
//        public void tilfoejVareTilAlmVarerVector(Vare v){
//        almVarerVector.add(v);
//    System.out.println(almVarerVector);
//   
//    }
//   
//    public void tilfoejVareTilSystemVarerVector(Vare v){
//        systemVarerVector.add(v);
//    System.out.println(systemVarerVector);
//    }
//   
//    public void tilfoejVareTilOekoVarerVector(Vare v){
//        oekoVarerVector.add(v);
//    System.out.println(oekoVarerVector);
//    }
//   
//    public void tilfoejVareTilSaftVector(Vare v){
//        saftVector.add(v);
//    System.out.println(saftVector);
//    }
//   
//    public void tilfoejVareTilOelVector(Vare v){
//        oelVector.add(v);
//    System.out.println(oelVector);
//    }
//   
//    public void tilfoejVareTilEmballageVector(Vare v){
//        emballageVector.add(v);
//    System.out.println(emballageVector);
//   
//    }   
   
}

----------------------Opret ny vare---------------------

/*
* OpretNyVareGUI.java
*
* Created on 17. december 2003, 16:39
*/
import java.awt.event.ActionListener;

import javax.swing.JButton;
/**
*
* @author  jeolsen
*/
public class OpretNyVareGUI extends javax.swing.JFrame {
   
   
    private GUIController gui;
    // Variables declaration - do not modify
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    private JButton jButton1;
    private JButton jButton2;
    private JButton jButton3;
    private JButton jButton4;
    private JButton jButton5;
    private JButton jButton6;
    private JButton jButton8;
    private JButton topBar;
    private javax.swing.JLabel banner;
    // End of variables declaration
   
   
    /** Creates new form OpretNyVareGUI */
    public OpretNyVareGUI(GUIController gui) {
        initComponents();
        this.gui = gui;
    }
   
    /** 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.
    */
    private void initComponents() {
       
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        jTextField5 = new javax.swing.JTextField();
        jButton1 = new JButton();
        jButton2 = new JButton();
        jButton3 = new JButton();
        jButton4 = new JButton();
        jButton5 = new JButton();
        jButton6 = new JButton();
        jButton8 = new JButton();
        topBar = new JButton();
        banner = new javax.swing.JLabel();
       
        getContentPane().setLayout(null);

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jButton1.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton1.setText("Navn");
        getContentPane().add(jButton1);
        jButton1.setBounds(60, 296, 70, 30);

        getContentPane().add(jTextField1);
        jTextField1.setBounds(60, 330, 70, 30);

        jButton2.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton2.setText("Antal");
        getContentPane().add(jButton2);
        jButton2.setBounds(140, 296, 70, 30);

        getContentPane().add(jTextField2);
        jTextField2.setBounds(140, 330, 70, 30);

        jButton3.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton3.setText("Pris");
        getContentPane().add(jButton3);
        jButton3.setBounds(220, 296, 70, 30);

        getContentPane().add(jTextField3);
        jTextField3.setBounds(220, 330, 70, 30);

        jButton4.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton4.setText("Dato");
        getContentPane().add(jButton4);
        jButton4.setBounds(300, 296, 70, 30);

        jButton5.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton5.setText("Lev.");
        getContentPane().add(jButton5);
        jButton5.setBounds(380, 296, 70, 30);

        getContentPane().add(jTextField4);
        jTextField4.setBounds(300, 330, 70, 30);

        getContentPane().add(jTextField5);
        jTextField5.setBounds(380, 330, 70, 30);

        jButton6.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton6.setText("Forside");
        getContentPane().add(jButton6);
        jButton6.setBounds(60, 450, 170, 30);

        jButton8.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton8.setText("Gem vare");
        getContentPane().add(jButton8);
        jButton8.setBounds(590, 240, 180, 30);

        topBar.setFont(new java.awt.Font("Verdana", 1, 14));
        getContentPane().add(topBar);
        topBar.setBounds(60, 240, 390, 30);
       
        banner.setFont(new java.awt.Font("Century", 0, 22));
        banner.setText("Frugt & Gr\u00f8nt Plantagen");
        banner.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1)));
        getContentPane().add(banner);
        banner.setBounds(10, 20, 270, 40);
       
        pack();
       
       
       
    jButton6.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                System.out.println("Trykket paa Forside i opretNyVareGUI");
                gui.gotoForside();
            }
        });
       
        jButton8.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                System.out.println("Trykket paa GemKnap i opretNyVareGUI");
                String[] fraFelt = new String[5];
                fraFelt[0] = jTextField1.getText();
                fraFelt[1] = jTextField2.getText();
                fraFelt[2] = jTextField3.getText();
                fraFelt[3] = jTextField4.getText();
                fraFelt[4] = jTextField5.getText();
               
                //System.out.println("fraFelt"+fraFelt);
                //System.out.println("fraFelt"+fraFelt[0]);
               
                gui.sendVare(fraFelt);
                gui.gotoHovedVare();
               
            }
        });
   
    }
   

   
    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {
          gui.gemVare();
        System.exit(0);
    }
   
       
   
}

----------------------Start----------------------------

import java.io.FileInputStream;
import java.io.ObjectInputStream;

/**
* Mads (20022663) Jens (20021304) Kalle (20020924)
* @author mrydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class Start{

    public static void main(String[] args) throws Exception {
        System.out.println("Vi er nået til GUIControlleren_MAIN");
        try{
        FileInputStream instream = new FileInputStream("TotalGemt.ser");
        ObjectInputStream in = new ObjectInputStream(instream);
        Lager hovedVareVector = (Lager) in.readObject();
        in.close();
        }
       
        catch (Exception e){
            System.out.println("fejl i load");
        //    System.out.println("hovedvarevector" + );
        }
        GUIController minGUIController = new GUIController();
               
        }


}

----------------Vare--------------------------------
import org.apache.xpath.operations.String;
import java.util.*;
/**
* Mads (20022663) Jens (20021304) Kalle (20020924)
* @author mrydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class Vare
{
   
   
    public String navn;
    public int antal;
    public double pris;
    public String leverandoer;
    public int sidsteSalgsdato;
    public String hovedvareGruppe;
   
   
   
    public Vare(String navn, int antal, double pris, String leverandoer, int sidsteSalgsdato,
    String hovedvareGruppe)
    {
   

    this.navn = navn;
    this.antal = antal;
    this.pris = pris;
    this.leverandoer = leverandoer;
    this.sidsteSalgsdato = sidsteSalgsdato;
    this.hovedvareGruppe = hovedvareGruppe;
       
   
   

    }

   
    public String setNavn() {
        return navn;
    }

    public int setAntal(){
        return antal;
    }

    public double setPris(){
        return pris;
    }

    public String setLeverandoer(){
        return leverandoer;
    }
   
    public int setSidsteSalgsdato(){
        return sidsteSalgsdato;
    }
   
    public String setHovedvareGruppe(){
        return hovedvareGruppe;
    }
   

}

----------------VareGUI------------------------------
import java.awt.event.ActionListener;

import javax.swing.JButton;
/**
* OpretNyVareGUI.java
* Created on 17. december 2003, 16:39
* @author  jeolsen
*/
public class VareGUI extends javax.swing.JFrame {
    // Variables declaration - do not modify
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    private JButton jButton1;
    private JButton jButton2;
    private JButton jButton3;
    private JButton jButton4;
    private JButton jButton5;
    private JButton jButton6;
    private JButton topBar;
    private JButton jButton8;
    private JButton jButton9;
    private GUIController gui;
    private javax.swing.JLabel banner;
  // End of variables declaration
 
    /** Creates new form OpretNyVareGUI */
    public VareGUI(GUIController gui) {
        initComponents();
        this.gui = gui;
    }
    public VareGUI() {
        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.
    */
    private void initComponents() {
       
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        jTextField5 = new javax.swing.JTextField();
        jButton1 = new JButton();
        jButton2 = new JButton();
        jButton3 = new JButton();
        jButton4 = new JButton();
        jButton5 = new JButton();
        jButton6 = new JButton();
        jButton8 = new JButton();
        jButton9 = new JButton();
        topBar = new JButton();
        banner = new javax.swing.JLabel();

        getContentPane().setLayout(null);

     
setName("VareGui");
        jButton1.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton1.setText("Navn");
        getContentPane().add(jButton1);
        jButton1.setBounds(60, 296, 70, 30);

        getContentPane().add(jTextField1);
        jTextField1.setBounds(60, 330, 70, 30);

        jButton2.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton2.setText("Antal");
        getContentPane().add(jButton2);
        jButton2.setBounds(140, 296, 70, 30);

        getContentPane().add(jTextField2);
        jTextField2.setBounds(140, 330, 70, 30);

        jButton3.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton3.setText("Pris");
        getContentPane().add(jButton3);
        jButton3.setBounds(220, 296, 70, 30);

        getContentPane().add(jTextField3);
        jTextField3.setBounds(220, 330, 70, 30);

        jButton4.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton4.setText("Dato");
        getContentPane().add(jButton4);
        jButton4.setBounds(300, 296, 70, 30);

        jButton5.setFont(new java.awt.Font("Verdana", 1, 12));
        jButton5.setText("Lev.");
        getContentPane().add(jButton5);
        jButton5.setBounds(380, 296, 70, 30);

        getContentPane().add(jTextField4);
        jTextField4.setBounds(300, 330, 70, 30);

        getContentPane().add(jTextField5);
        jTextField5.setBounds(380, 330, 70, 30);

        jButton6.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton6.setText("Forside");
        getContentPane().add(jButton6);
        jButton6.setBounds(60, 450, 170, 30);
       
        jButton8.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton8.setText("Opdat\u00e9r vare");
        getContentPane().add(jButton8);
        jButton8.setBounds(590, 240, 180, 30);

        jButton9.setFont(new java.awt.Font("Verdana", 1, 14));
        jButton9.setText("Nedl\u00e6g vare");
        getContentPane().add(jButton9);
        jButton9.setBounds(590, 330, 180, 30);

          topBar.setFont(new java.awt.Font("Verdana", 1, 14));
        getContentPane().add(topBar);
        topBar.setBounds(60, 240, 390, 30);
       
        banner.setFont(new java.awt.Font("Century", 0, 22));
        banner.setText("Frugt & Gr\u00f8nt Plantagen");
        banner.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1)));
        getContentPane().add(banner);
        banner.setBounds(10, 20, 270, 40);
     
      jButton6.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                //jButton2ActionPerformed(evt);
                System.out.println("Trykket paa Forside i vareGUI");
                gui.gotoForside();
            }
        });
       
        //Lytter på luk-ned
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });
       
        show();
        pack();
    }
   
   
   
    public void setText(String navn, String[] vare) {
      topBar.setText(navn);

    jTextField1.setText((String)vare[0]);
    jTextField2.setText((String)vare[1]);
    jTextField3.setText((String)vare[2]);
    jTextField4.setText((String)vare[3]);
    jTextField5.setText((String)vare[4]);
   
   
    }
   
   
    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {
        gui.gemVare();
        System.exit(0);
    }
 
   
}

---------------------Watcher---------------------

/**
* @author mrydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class Watcher {
   
   
   
    //Denne klasse skal sammenligne computerens kalender
    //med vores programs indtastede sidste salgsdatoer
    //for at undgå for gamle varer.
   
    //Dette ville afhjælpes med et pop-up vindue
    //som bemærkede at der f. eks. kun var 5 dages
    //levetid for en specifik vare.
    //Samt en funktion der skulle holde øje med om
    //man er ved at løbe tør for vare
   
    //Funktionerne er Blackboxed

}
Avatar billede bjarkebundgaard Nybegynder
18. december 2003 - 19:34 #1
Ser jeres kode ikke lidt rodet ud? Hvis der er nogen der kan knække den nød, så er jeg meget imponeret.
Avatar billede jakoba Nybegynder
18. december 2003 - 19:48 #2
burde de metoder i vare ikke hedde get... ?
    public String setNavn() {
        return navn;
    }
set... metoder er sædvanligvis dem der ændrer en værdi:
    public void setNavn( String navn ) {
        this.navn = navn;
    }
Avatar billede engelbrett Nybegynder
18. december 2003 - 19:54 #3
Dem skal du se bort fra, de har ingen funktion. vi har bare glemt at fjerne dem:-)
Avatar billede arne_v Ekspert
18. december 2003 - 19:57 #4
LagerController kan læse og skrive en Vector til TotalGemt.ser, men
Start forsøger at læse en Lager fra TotalGemt.ser (og Lager er ikke
engang Serializable).
Avatar billede engelbrett Nybegynder
18. december 2003 - 20:07 #5
aha det skal være en vector den skal læse? som nedenstående

public class Start{

    public static void main(String[] args) throws Exception {
        System.out.println("Vi er nået til GUIControlleren_MAIN");
        try{
        FileInputStream instream = new FileInputStream("TotalGemt.ser");
        ObjectInputStream in = new ObjectInputStream(instream);
        Vector hovedVareVector = (Vector) in.readObject();
        in.close();
        }
       
        catch (Exception e){
            System.out.println("fejl i load");
        //    System.out.println("hovedvarevector" + );
        }
        GUIController minGUIController = new GUIController();
       
               
       
       
       
        }


}
Avatar billede engelbrett Nybegynder
18. december 2003 - 20:10 #6
Har du en idé om hvorledes jeg får repræsenteret den indlæste fil i GUI'erne?
Avatar billede arne_v Ekspert
18. december 2003 - 20:15 #7
I skal vel have den over i LagerController hovedVareVector ?
Avatar billede engelbrett Nybegynder
18. december 2003 - 20:22 #8
yes det var tanken. Men hvodden?
Avatar billede arne_v Ekspert
18. december 2003 - 20:26 #9
Ja det er lidt svært på grund af den måde I har fået strikket tingene
sammen.

Den grimme måde ville være at gøre LagerController hovedVareVector static og
sætte den fra Start main.

Den pænere måde ville være at flytte indlæsningen fra Start main til
LagerController constructor.
Avatar billede engelbrett Nybegynder
18. december 2003 - 21:07 #10
VI kan stadig ikke få filen repræsenteret i GUI'en. Loadingen af filen lykkes fint nok, men hvad kan der være galt?


----------------LagerController----------------

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.*;
import java.util.Vector;

/**
* @author Mads Rydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/

public class LagerController implements Serializable
{
    public String NewHovedvareVector;
    public Vare minVare;
    private FileOutputStream outStream;
    private ObjectOutputStream out;
    private ObjectInputStream in;
    private GUIController gui;
   
    private Vector hovedVareVector, systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector;
   
   
   
    Lager mitLager = new Lager();
   
   
       
   
        /**
    * Constructor LagerController.
    */
    public LagerController(GUIController gui) throws Exception {
        System.out.println("her loades filen");
        try{
        FileInputStream instream = new FileInputStream("TotalGemt.ser");
        ObjectInputStream in = new ObjectInputStream(instream);
        Vector hovedVareVector = (Vector) in.readObject();
        in.close();
        }
       
        catch (Exception e){
            System.out.println("fejl i load");
        //    System.out.println("hovedvarevector" + );
        }
       
        this.gui = gui;
   
   
    }
   
   
   
    //ny vector, hvor...
    public void addVare(String[] vare, int selected) {
   
    Vector denneVector = mitLager.getHVVector();
   
    if(selected == 1) {
   
        System.out.println("addvareSelected"+selected);
   
        Vector sysVare = (Vector)denneVector.get(0);
       
        sysVare.add(vare);
        gui.getHovedVare().setComboBox(sysVare);
        System.out.println("sysVare "+sysVare.toString());
        mitLager.udskrivVector();
    }
    if(selected == 2) {
       
        Vector ecoVare = (Vector)denneVector.get(1);
        ecoVare.add(vare);
        gui.getHovedVare().setComboBox(ecoVare);
        System.out.println("ecoVare "+ecoVare.toString());
        mitLager.udskrivVector();
    }
    if(selected == 3) {
   
        Vector saftVare = (Vector)denneVector.get(2);
       
        saftVare.add(vare);
        gui.getHovedVare().setComboBox(saftVare);
        System.out.println("saft: "+saftVare.toString());
        mitLager.udskrivVector();
    }
    if(selected == 4) {
   
        Vector oel = (Vector)denneVector.get(3);
       
        oel.add(vare);
        gui.getHovedVare().setComboBox(oel);
        System.out.println("Øl: "+oel.toString());
        mitLager.udskrivVector();
    }
    if(selected == 5) {
   
        Vector alm = (Vector)denneVector.get(4);
       
        alm.add(vare);
        gui.getHovedVare().setComboBox(alm);
        System.out.println("almVare: "+alm.toString());
        mitLager.udskrivVector();
    }
    if(selected == 6) {
   
        Vector emballage = (Vector)denneVector.get(5);
       
        emballage.add(vare);
        gui.getHovedVare().setComboBox(emballage);
        System.out.println("emballage: "+emballage.toString());
        mitLager.udskrivVector();
    }
   
   
    }
   
    public Vector getHovedVareVector() {
    return mitLager.getHVVector();
    }
   
   
    public void nedlaegVare(){
       
       
    }
   
       
    public void getVareSpec(){
       
    }
   
    public void changeVareSpec(){
   
    }
   
    public void showPopUp() {
       
   
    }
   
   
   
    public void printVector(){
       
       
    }
   
   
   
    /**Serialisering af varerne som objekter
    *
    *
    * */
   
   


  public void saveHovedvareVector(Vector obj, String filnavn) //throws IOException
  {
     
    try
    {
      FileOutputStream outStream = new FileOutputStream("TotalGemt.ser");
      ObjectOutputStream out = new ObjectOutputStream(outStream);
      out.writeObject(hovedVareVector);
      out.close();
    }
    catch (IOException e)
    {
          System.out.println("Fejl: "+e);
        }
  }

  public static Object hent(String filnavn) throws Exception
  {
   
      FileInputStream out = new FileInputStream("TotalGemt.ser");
      ObjectInputStream in = new ObjectInputStream(out);
      Object obj = in.readObject();
      in.close();
      return obj;
  }

       
       
    public void getHovedvareList(){
       
       
    }
   
    public void getHovedvarePrisListe(){
       
    }
   
    public void setAddedHovedvarePris(){
       
    }
   
    public void getPrisListe(){
       
    }
   
    public void setAddedPris(){
       
    }
   
    public double getSamletSaldo(double SamletSaldo){
        return SamletSaldo;
    }
   
   
//        public void tilfoejVareTilAlmVarerVector(Vare v){
//        almVarerVector.add(v);
//    System.out.println(almVarerVector);
//   
//    }
//   
//    public void tilfoejVareTilSystemVarerVector(Vare v){
//        systemVarerVector.add(v);
//    System.out.println(systemVarerVector);
//    }
//   
//    public void tilfoejVareTilOekoVarerVector(Vare v){
//        oekoVarerVector.add(v);
//    System.out.println(oekoVarerVector);
//    }
//   
//    public void tilfoejVareTilSaftVector(Vare v){
//        saftVector.add(v);
//    System.out.println(saftVector);
//    }
//   
//    public void tilfoejVareTilOelVector(Vare v){
//        oelVector.add(v);
//    System.out.println(oelVector);
//    }
//   
//    public void tilfoejVareTilEmballageVector(Vare v){
//        emballageVector.add(v);
//    System.out.println(emballageVector);
//   
//    }
   
   
   

}


---------------------Start-----------------

import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.util.Vector;

/**
* Mads (20022663) Jens (20021304) Kalle (20020924)
* @author mrydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class Start{
   
    public static void main(String[] args) throws Exception {
   
       
        System.out.println("Vi er nået til GUIControlleren_MAIN");
       
        GUIController minGUIController = new GUIController();
       
               
       
       
       
        }


}
Avatar billede arne_v Ekspert
18. december 2003 - 21:28 #11
Hvor skal I bruge den henne ?
Avatar billede engelbrett Nybegynder
18. december 2003 - 21:33 #12
systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector som ligger i hovedvarevectoren skal vises i hovedvareGUIComboBoxen når man har valgt den respektive hovedvaregruppe i forsideComboBoxen.
Avatar billede arne_v Ekspert
18. december 2003 - 21:42 #13
Er vare vektorerne tilføjet til hovedVareVektor inden den gemmes og
bliver de hevet ud bagefter ?
Avatar billede engelbrett Nybegynder
18. december 2003 - 21:44 #14
Ja de er tilføjet men jeg er ikke sikker på om de bliver hevet ud. Hvordan gør man det?
Avatar billede arne_v Ekspert
18. december 2003 - 21:47 #15
Hvor bliver de tilføjet ?

Man putter en vektor ind i en anden vektor med:
  v1.add(v2);
og henter ud igen med:
  Vector v2 = (Vector)v1.get(ix);
Avatar billede arne_v Ekspert
18. december 2003 - 21:48 #16
Har i en beskrivelse af hvordan jeres applikation skal virke ?
Avatar billede arne_v Ekspert
18. december 2003 - 21:48 #17
Det er lidt svært at gennemskue hvordan tingene er tænkt at skulel virke.
Avatar billede _carsten Nybegynder
18. december 2003 - 22:01 #18
Har prøvet det samme som Arne, at finde ud af hvordan det skal virke, mener i er bedst tjent med at starte forfra og bruge et CardLayout

Her er en lille test på hvordan i kunne gøre.
En JFrame, CardLayout og 7 JPanels, prøv at compile og kør


import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class Plantagen extends javax.swing.JFrame {
    private JMenuItem[] menuItems = new JMenuItem[7];
    private JMenuBar jMenuBar1 = new javax.swing.JMenuBar();
    private JMenu jMenu1 = new javax.swing.JMenu();
    private JMenu jMenu2 = new javax.swing.JMenu();
    private Panels[] panel = new Panels[7];
    private CardLayout layout = new CardLayout();
    private Container c;
   
    private String[] menu = new String[] { "Hovedvaregrupper",
                                    "Systemvarer",
                                    "Økologiske varer",
                                    "Saft",
                                    "Øl",
                                    "Almindelige varer",
                                    "Emballage" };
   
    public Plantagen() {
        c = getContentPane();
        getContentPane().setLayout( layout);
        initComponents();   
    }
   
    private void initComponents() {

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        setSize(500,500);
                                   
        menuItems = new JMenuItem[7];
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();
       
        jMenuBar1.setBackground(new java.awt.Color(0, 0, 153));
        jMenuBar1.setForeground(new java.awt.Color(255, 255, 255));
        jMenu1.setBackground(new java.awt.Color(0, 0, 155));
        jMenu1.setForeground(new java.awt.Color(255, 255, 255));
        jMenu1.setText("Menu");
        jMenu2.setBackground(new java.awt.Color(0, 0, 153));
        jMenu2.setForeground(new java.awt.Color(255, 255, 255));
        jMenu2.setText("Varer");
       
        int x = 250;
        for(int i = 0; i < menuItems.length; i++){
            menuItems[i] = new JMenuItem();
            menuItems[i].setBackground(new java.awt.Color(0, 0, 153));
            menuItems[i].setForeground(new java.awt.Color(255, 255, 255));
            menuItems[i].setText(menu[i]);
            menuItems[i].addActionListener( new MyMenuListener());
           
            jMenu2.add(menuItems[i]);
           
            x -= 30;
            System.out.println(x + "");
            panel[i] = new Panels(menu[i]);
            panel[i].setBackground(new java.awt.Color(x, x, 70));
            getContentPane().add( panel[i], menu[i]);
        }
       
        jMenu1.add(jMenu2);
        jMenuBar1.add(jMenu1);
        setJMenuBar(jMenuBar1);
        pack();
    }
   
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }

    public static void main(String args[]) {
        new Plantagen().show();
    }
   
   
    class MyMenuListener implements ActionListener{
        public void actionPerformed(ActionEvent e) {
            System.out.println( "Der blev trykke på menuen \"" +
                          ((JMenuItem)e.getSource()).getText() +
                          "\"");
       
           
            for(int i = 0; i < panel.length; i++){
                if( ((JMenuItem)e.getSource()).getText().equals(menu[i]) ){
                    layout.show(c , menu[i]);
                    return;
                }
            }
        }   
    }
}



class Panels extends JPanel{
    public Panels(){
    } 
   
    public Panels(String text){
        setLayout(new java.awt.FlowLayout());
        add(new JLabel(text));
    } 
}
Avatar billede engelbrett Nybegynder
18. december 2003 - 22:05 #19
Fra start:

Vi skal udvikle et forholdvis simpelt lagerstyringsprogram til en grønthandler. Vi har arbejdet en masse med patterns i forløbet op til selve koden og har valgt at lageret styres af to controllere for at sikre lav kobling og høj samhørighed.

GUIControlleren sørger for oprettelse af vores 4 GUI'er: ForsideGUI, hovedvareGUI, opretNyVareGUI og VareGUI, mens LagerControlleren tager sig af loadingen af filer, gemme filer og add'e objekterne ud i vectorerne( addVare).

I forsideGUI vælger man hovedvaregruppe i en combobox, hvorefter man kalder opretNyVareGUI. Her skullle hovedvaregruppenavnet gerne indsættes i den næste JButtton, hvilket vi også har problemer med.
I opretNyVareGUI'en skal man indtaste 5 attributter: Navn, antal, pris, dato og leverandør som selvfølgelig skal sendes med som parametre ind i den pågældende undervector(f.eks. systemVector).

Når varen er oprettet skal man kunne se de 5 parametre i hovedvarecomboboxen. Man skal kunne trykke på varen i comboboxen, hvorefter parametrene vises i vareGUI'en
Avatar billede arne_v Ekspert
18. december 2003 - 22:19 #20
I har de samme vektorer i både Lager og LagerController ??
Avatar billede arne_v Ekspert
18. december 2003 - 22:25 #21
Jeg tror at I skal omorganisere lidt.

Slå Lager og LagerController sammen til en klasse. F.eks. Lager.

Opret Lager i Start og send en referance til den med over til GUI klasserne.

Lad GUI klasserne hente fra Lager i.s.f. at lade Lager opdatere GUI.

Drop den yderste Vector og skriv og læs N Vector'er med multipel
writeObject/readObject.
Avatar billede engelbrett Nybegynder
18. december 2003 - 22:25 #22
LagerControlleren skulle gerne bare add'e til de vectorer der ligger i Lager
Avatar billede arne_v Ekspert
18. december 2003 - 22:31 #23
LagerController har egne instans variable af typen Vector med samme
navn som dem i Lager.
Avatar billede arne_v Ekspert
18. december 2003 - 22:32 #24
Og saveHovedvareVector ´gemmer dens egen hovedvareVector
ikke Lager's
Avatar billede engelbrett Nybegynder
18. december 2003 - 22:33 #25
Vi er en lidt pressset situation og hele processsen op til har vi lagt op til denne struktur. Burde det ikke kunne lade sig gøre?
Avatar billede arne_v Ekspert
18. december 2003 - 22:40 #26
Måske.

I kan starte med at prøve at slette de Vector instans variable i
LagController og få den til at bruge Lager også i save.
Avatar billede engelbrett Nybegynder
18. december 2003 - 23:51 #27
Altså sådan her?


------------------LagerController---------------------------------
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.*;
import java.util.Vector;

/**
* @author Mads Rydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/

public class LagerController implements Serializable
{
    public String NewHovedvareVector;
    public Vare minVare;
    private FileOutputStream outStream;
    private ObjectOutputStream out;
    private ObjectInputStream in;
    private GUIController gui;
   
//    private Vector hovedVareVector, systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector;
//   
   
   
    Lager mitLager = new Lager();
   
   
       
   
        /**
    * Constructor LagerController.
    */
    public LagerController(GUIController gui) throws Exception {
        System.out.println("her loades filen");
        try{
        FileInputStream instream = new FileInputStream("TotalGemt.ser");
        ObjectInputStream in = new ObjectInputStream(instream);
        Vector hovedVareVector = (Vector) in.readObject();
        in.close();
        System.out.println(hovedVareVector);
        }
       
        catch (Exception e){
            System.out.println("fejl i load");
        //    System.out.println("hovedvarevector" + );
        }
       
        this.gui = gui;
   
   
    }
   
   
   
    //ny vector, hvor...
    public void addVare(String[] vare, int selected) {
   
    Vector denneVector = mitLager.getHVVector();
   
    if(selected == 1) {
   
        System.out.println("addvareSelected"+selected);
   
        Vector sysVare = (Vector)denneVector.get(0);
       
        sysVare.add(vare);
        gui.getHovedVare().setComboBox(sysVare);
        System.out.println("sysVare "+sysVare.toString());
       
    }
    if(selected == 2) {
       
        Vector ecoVare = (Vector)denneVector.get(1);
        ecoVare.add(vare);
        gui.getHovedVare().setComboBox(ecoVare);
        System.out.println("ecoVare "+ecoVare.toString());
       
    }
    if(selected == 3) {
   
        Vector saftVare = (Vector)denneVector.get(2);
       
        saftVare.add(vare);
        gui.getHovedVare().setComboBox(saftVare);
        System.out.println("saft: "+saftVare.toString());
       
    }
    if(selected == 4) {
   
        Vector oel = (Vector)denneVector.get(3);
       
        oel.add(vare);
        gui.getHovedVare().setComboBox(oel);
        System.out.println("Øl: "+oel.toString());
       
    }
    if(selected == 5) {
   
        Vector alm = (Vector)denneVector.get(4);
       
        alm.add(vare);
        gui.getHovedVare().setComboBox(alm);
        System.out.println("almVare: "+alm.toString());
       
    }
    if(selected == 6) {
   
        Vector emballage = (Vector)denneVector.get(5);
       
        emballage.add(vare);
        gui.getHovedVare().setComboBox(emballage);
        System.out.println("emballage: "+emballage.toString());
       
    }
   
   
    }
   
    public Vector getHovedVareVector() {
    return mitLager.getHVVector();
    }
   
   
   
   
   
    /**Serialisering af varerne som objekter
    *
    *
    * */
   
    public void saveHovedvareVector(Vector obj, String filnavn) //throws IOException
  {
     
    try
    {
      FileOutputStream outStream = new FileOutputStream("TotalGemt.ser");
      ObjectOutputStream out = new ObjectOutputStream(outStream);
      out.writeObject(mitLager.getHVVector());
      out.close();
    }
    catch (IOException e)
    {
          System.out.println("Fejl: "+e);
        }
  }

       
    public void setAddedHovedvarePris(){
       
    }
   
    public void getPrisListe(){
       
    }
   
    public void setAddedPris(){
       
    }
   
    public void nedlaegVare(){
       
       
    }
   
       
    public void showPopUp() {
       
   
    }
   
       
    public void printVector(){
       
       
    }
   
    public double getSamletSaldo(double SamletSaldo){
        return SamletSaldo;
    }
   
       

}
Avatar billede arne_v Ekspert
18. december 2003 - 23:54 #28
Ikke helt.

Vector hovedVareVector = (Vector) in.readObject();

læser data ind fra til til en lokal variabel.

Den skal så gemmes ovre i Lager.
Avatar billede arne_v Ekspert
18. december 2003 - 23:55 #29
Måske skulle du først oprette Lager efter at have indlæst og så kalde
Lager constructor med den indlæste Vector ?
Avatar billede engelbrett Nybegynder
19. december 2003 - 00:00 #30
Vi har som du kan se fulgt dit råd og det virker sateme. Vi får både gemt en vector med noget i og vi kan se at det også er den rigtige der bliver læst ind igen.

Problemet er nu stadig at få repræsenteret vores undervectorer(systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector) i Gui'erne. Vi tror der er et problem her:

private void hovedvareGUIComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
       
        selected = hovedvareGUIComboBox.getSelectedIndex();
               
        this.selected = selected;
        System.out.println("testSelected"+selected);
       
//      try {
        Vector HVVector = gui.getHovedVareVector();
        System.out.println(HVVector);
        int hovedVare = gui.getForsideGUI().getSelected();     
        Vector vareVector = (Vector)HVVector.get(hovedVare);
        System.out.println(vareVector);
       
       
        String navn = ("");
      if (hovedVare == 1) {
            navn = ("Systemvarer");
           
      }
      if (hovedVare == 2) {
            navn = ("Øko.Varer");
      }
      if (hovedVare == 3) {
            navn = ("Saft");
      }
      if (hovedVare == 4) {
            navn = ("Øl");
      }
      if (hovedVare == 5) {
            navn = ("Alm.Varer");
      }
      if (hovedVare == 6) {
            navn = ("Emballage");
      }
       
        String[] vare = (String[])vareVector.get(selected);
        System.out.println("selectedvare i hovedvareGUI "+selected);
       
        gui.gotoVareGUI(navn, vare);

Når vi udskriver System.out.println(HVVector); er der noget i vectoren. Men den næste System.out.println(vareVector); er tom. Mystisk!!!
Avatar billede arne_v Ekspert
19. december 2003 - 00:03 #31
Hvordan ser HVVector ud ?

Og hvilken værdi har hovedVare ?
Avatar billede engelbrett Nybegynder
19. december 2003 - 00:03 #32
ok det var ikke rigtigt den virker ca. hver anden gang jeg prøver lige igen
Avatar billede arne_v Ekspert
19. december 2003 - 00:12 #33
Jeg vil sige godnat nu.

Prøv og se om ikke I kan trace fejl ved at skrive systematisk ud
og finde hvor det går galt.
Avatar billede engelbrett Nybegynder
19. december 2003 - 00:15 #34
Det er en instans af hovedVareVector som hentes fra GUIController som henter den fra LagerController som henter den i Lager. Værdien af hovedvare afhænger af selected fra forsideCombox. Den fås fra GUIController.
Avatar billede engelbrett Nybegynder
19. december 2003 - 00:39 #35
Vi vil kæmpe videre med det! Tak for hjælpen:-) Spørgsmålet står sikkert åbent i morgen, så du er velkommen til at kigge forbi indlægget.
Avatar billede arne_v Ekspert
19. december 2003 - 10:02 #36
Hvor langt er I kommet ?
Avatar billede arne_v Ekspert
19. december 2003 - 10:03 #37
Og et svar for den hidtidige del
Avatar billede engelbrett Nybegynder
19. december 2003 - 10:54 #38
Vi bøvler stadig med det, det virker desværre ikke endnu:-(
Avatar billede engelbrett Nybegynder
19. december 2003 - 11:54 #39
Ved du om det er muligt at give de 200 point og så stadig holde spørgsmålet åbent, der er ingen tvivl om du har fortjent point for den hjælp du har givet indtil videre:-)
Avatar billede arne_v Ekspert
19. december 2003 - 16:50 #40
Jeg stopper ikke med at hjælpe fordi der er givet point.

Så spørg bare.
Avatar billede engelbrett Nybegynder
19. december 2003 - 18:43 #41
Vi har prøvet med en del af dine forslag og vi sporer en bedring. Men her noget der har undret os.
Den oprettede fil [[Ljava.lang.String;@fdb00d]
Den gemte fil [[], [[Ljava.lang.String;@fdb00d], [], [], [], []]
Den åbnede fil [[], [[Ljava.lang.String;@b89838], [], [], [], []]
Er det bare fordi at .ser filer bliver repræsenteret anderledes når de loades eller er det en helt anden fil vi loader end den vi gemmer?
Avatar billede arne_v Ekspert
19. december 2003 - 19:11 #42
Ja det er helt OK.

Det indlæste objekt har en anden adresse end det gemte.
Avatar billede engelbrett Nybegynder
19. december 2003 - 19:49 #43
Ok tak for det.
Næste spørgsmål er lidt vildere. Hvordan får jeg den indlæste fil til at blive vist i mine gui'er? .ser filen indeholder en vektor med seks vectorer, disse indeholder nogle input fra diverse textfields.
HHVector er en instans af hovedVareVector det virker godt nok.
hovedVare får sin værdi fra forsideComboBox via GUIControlleren.

vareVector=[]
hovedvare=1

Jeg ved ikke om det ville være smartere hvis jeg smed alle klasserne op så du kan se dem der er sket en del ændringer i forhold til dem du kan se.
Avatar billede arne_v Ekspert
19. december 2003 - 20:21 #44
Efter at du har indlæset din hoved vektor og pakket dine
vektorer ud af den så skal de jo sættes ind i GUI'en.

textboxe/comboboxe/whatever

Det var måske godt at se på koden igen.

Kan du ligge den til download fremfor at copy paste ?

(langt hurtigere for mig)
Avatar billede engelbrett Nybegynder
19. december 2003 - 20:30 #45
Ok....
Avatar billede engelbrett Nybegynder
19. december 2003 - 20:36 #46
Avatar billede arne_v Ekspert
19. december 2003 - 20:43 #47
Jeg kigger på det senere i aften.
Avatar billede engelbrett Nybegynder
19. december 2003 - 20:45 #48
Okay:-)
Avatar billede arne_v Ekspert
19. december 2003 - 21:49 #49
Prøv og:

lav Lager constructor om til at tage en Vector som argument

lad LagerControll constructor kalde Lager constructor med den
indlæste vektor
Avatar billede engelbrett Nybegynder
19. december 2003 - 22:13 #50
Ok har lige prøvet men jeg kan ikke få det til at fungere. Hvordan gør man?
Avatar billede arne_v Ekspert
19. december 2003 - 22:16 #51
public Lager(Vector hovedVareVector){
   
       
    this.hovedVareVector = hovedVareVector;
Avatar billede arne_v Ekspert
19. december 2003 - 22:18 #52
Vector hovedVareVector;
try{
  hovedVareVector = (Vector) in.readObject();
} catch (Exception e){
  hovedVareVectoe = new Vector();
  // put under vektorerne ind her
}
mitLager = new Lager(hovedVareVektor);
Avatar billede engelbrett Nybegynder
19. december 2003 - 22:44 #53
Den sidste del skal ind i LagerControllerens Constructor? Er det rigtigt forstået?
Avatar billede arne_v Ekspert
19. december 2003 - 22:46 #54
Ja
Avatar billede engelbrett Nybegynder
19. december 2003 - 22:59 #55
Er lidt forvirret men forsøger
Avatar billede engelbrett Nybegynder
19. december 2003 - 23:03 #56
Det er vist forkert. Jeg har prøvet men er kommet frem til nedenstående. Den kaster en masse fejl og jeg ved ikke lige hvor jeg skal begynde

---------------------------------LagerController-------------------------------
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.*;
import java.util.Vector;

/**
* @author Mads Rydahl
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/

public class LagerController implements Serializable
{
   
    //public Vare minVare;
    private FileOutputStream outStream;
    private ObjectOutputStream out;
    private ObjectInputStream in;
    private GUIController gui;
   
//    private Vector hovedVareVector, systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector;
//   
       
        Vare minVare = new Vare();   
    /**
    * Constructor LagerController.
    */
    public LagerController(GUIController gui) throws Exception {
        //Her loades den gemte fil
        //Hvis ike det lykkes giver programmet en fejl meddelelse
        //Vi tjekker hvilken fil der kommer ind
        Vector hovedVareVector;
        try{
          hovedVareVector = (Vector) in.readObject();
        } catch (Exception e){
          hovedVareVector = new Vector();
         
  // put under vektorerne ind her
        }
        Lager mitLager = new Lager(hovedVareVector);
       
        try{
        FileInputStream instream = new FileInputStream("TotalGemt.ser");
        ObjectInputStream in = new ObjectInputStream(instream);
        Vector hovedVareVector = (Vector) in.readObject();
        in.close();
        System.out.println(hovedVareVector);
        }
       
        catch (Exception e){
            gui.loadFejl();
            System.out.println("hovedvarevector:" + in.readObject());
        }
       
        this.gui = gui;
   
   
   
    }
   
   
   
   
    //ny vector, hvor...
    public void addVare(String[] input, int selected) {
   
    System.out.println("addvareValgt");
   
    //input = (String[]) minVare;
   
    Vector denneVector = mitLager.getHVVector();
   
    if(selected == 1) {
   
           
        Vector sysVare = (Vector)denneVector.get(0);
       
        sysVare.add(input);
        System.out.println("haloo ");
        gui.getHovedVare().sethovedvareGUIComboBox(sysVare);
       
        System.out.println("sysVare "+sysVare.toString());
       
    }
    if(selected == 2) {
       
        Vector ecoVare = (Vector)denneVector.get(1);
        ecoVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(ecoVare);
        System.out.println("ecoVare "+ecoVare.toString());
       
    }
    if(selected == 3) {
   
        Vector saftVare = (Vector)denneVector.get(2);
       
        saftVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(saftVare);
        System.out.println("saft: "+saftVare.toString());
       
    }
    if(selected == 4) {
   
        Vector oel = (Vector)denneVector.get(3);
       
        oel.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(oel);
        System.out.println("Øl: "+oel.toString());
       
    }
    if(selected == 5) {
   
        Vector alm = (Vector)denneVector.get(4);
       
        alm.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(alm);
        System.out.println("almVare: "+alm.toString());
       
    }
    if(selected == 6) {
   
        Vector emballage = (Vector)denneVector.get(5);
       
        emballage.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(emballage);
        System.out.println("emballage: "+emballage.toString());
       
    }
   
   
   
    }
   
    public Vector getHovedVareVector() {
    return mitLager.getHVVector();
    }
   
   
   
    /**Serialisering af varerne som objekter
    *
    *
    * */
    //Denne metode gemmer hovedvarevektoren med dens indhold i filen
    //"TotalGemt.ser" vi tjkker hvilke data den indeholder
    public void saveHovedvareVector(Vector obj, String filnavn) //throws IOException
  {
     
    try
    {
      FileOutputStream outStream = new FileOutputStream("TotalGemt.ser");
      ObjectOutputStream out = new ObjectOutputStream(outStream);
      out.writeObject(mitLager.getHVVector());
      out.close();
      System.out.println("filen blev gemt"+ mitLager.getHVVector());
    }
    catch (IOException e)
    {
          System.out.println("Fejl: "+e);
        }
  }

   
               
   
       

}
Avatar billede arne_v Ekspert
19. december 2003 - 23:32 #57
Det skulle merges altså mere noget a la:

  /**
    * Constructor LagerController.
    */
    public LagerController(GUIController gui) throws Exception {
        //Her loades den gemte fil
        //Hvis ike det lykkes giver programmet en fejl meddelelse
        //Vi tjekker hvilken fil der kommer ind
        Vector hovedVareVector;
        try{
          FileInputStream instream = new FileInputStream("TotalGemt.ser");
          ObjectInputStream in = new ObjectInputStream(instream);
          hovedVareVector = (Vector) in.readObject();
          in.close();
          System.out.println(hovedVareVector);
        } catch (Exception e){
          gui.loadFejl();
          hovedVareVector = new Vector();
          // put under vektorerne ind her
        }
        mitLager = new Lager(hovedVareVector);
        this.gui = gui;

    }
Avatar billede arne_v Ekspert
19. december 2003 - 23:32 #58
Og:

private Lager mitLager;

som instans variabel.
Avatar billede engelbrett Nybegynder
19. december 2003 - 23:42 #59
Hvis under vektorerne skal ligges ind her skal de vel erklæres sådan her:

        private FileOutputStream outStream;
    private ObjectOutputStream out;
    private ObjectInputStream in;
    private GUIController gui;
    private Vector hovedVareVector, systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector;
   
Men så er der problemer Med at mitLager ikke kan blive resolved. jeg skal vel forklare at den har en vektor med som parameter? Hvordan ser det ud?
Avatar billede arne_v Ekspert
19. december 2003 - 23:46 #60
Du mangler:

private Lager mitLager;
Avatar billede arne_v Ekspert
19. december 2003 - 23:47 #61
Det angiver du i Lager's constructor:

public Lager(Vector hovedVareVector){
Avatar billede engelbrett Nybegynder
19. december 2003 - 23:49 #62
jeps det havde jeg gjort det var bare den private jeg manglede
Avatar billede engelbrett Nybegynder
20. december 2003 - 00:16 #63
Ok jeg har gjort som du har foreslået når jeg kører programmet kommer denne fejl:


java.lang.NullPointerException
    at LagerController.addVare(LagerController.java:79)
    at GUIController.sendInput(GUIController.java:76)
    at OpretNyVareGUI$5.actionPerformed(OpretNyVareGUI.java:192)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
    at java.awt.Component.processMouseEvent(Component.java:5093)
    at java.awt.Component.processEvent(Component.java:4890)
    at java.awt.Container.processEvent(Container.java:1566)
    at java.awt.Component.dispatchEventImpl(Component.java:3598)
    at java.awt.Container.dispatchEventImpl(Container.java:1623)
    at java.awt.Component.dispatchEvent(Component.java:3439)ForsideGUIgetSelected1
addvareValgt

    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
    at java.awt.Container.dispatchEventImpl(Container.java:1609)
    at java.awt.Window.dispatchEventImpl(Window.java:1585)
    at java.awt.Component.dispatchEvent(Component.java:3439)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

Det er jo en ordentlig en. Det går jo galt når programmet kører addVare og sendInput men hvor går det galt?
Avatar billede arne_v Ekspert
20. december 2003 - 00:36 #64
Hvad indeholder LagerController.java line 79 og de foregående og næste linier nu ?
Avatar billede engelbrett Nybegynder
20. december 2003 - 00:42 #65
Her er addVare metoden. Det er den der ligger begynder i line 79 i lagerControlleren.

public void addVare(String[] input, int selected) {
   
    System.out.println("addvareValgt");
   
    //input = (String[]) minVare;
   
    Vector denneVector = mitLager.getHVVector();
   
    if(selected == 1) {
   
           
        Vector sysVare = (Vector)denneVector.get(0);
       
        sysVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(sysVare);
       
        System.out.println("sysVare "+sysVare.toString());
       
    }
    if(selected == 2) {
       
        Vector ecoVare = (Vector)denneVector.get(1);
        ecoVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(ecoVare);
        System.out.println("ecoVare "+ecoVare.toString());
       
    }
    if(selected == 3) {
   
        Vector saftVare = (Vector)denneVector.get(2);
       
        saftVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(saftVare);
        System.out.println("saft: "+saftVare.toString());
       
    }
    if(selected == 4) {
   
        Vector oel = (Vector)denneVector.get(3);
       
        oel.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(oel);
        System.out.println("Øl: "+oel.toString());
       
    }
    if(selected == 5) {
   
        Vector alm = (Vector)denneVector.get(4);
       
        alm.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(alm);
        System.out.println("almVare: "+alm.toString());
       
    }
    if(selected == 6) {
   
        Vector emballage = (Vector)denneVector.get(5);
       
        emballage.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(emballage);
        System.out.println("emballage: "+emballage.toString());
       
    }
   
   
   
    }
   
    public Vector getHovedVareVector() {
    return mitLager.getHVVector();
    }
Avatar billede arne_v Ekspert
20. december 2003 - 00:50 #66
Har du fået lagt undervektorerne ind ?
Avatar billede engelbrett Nybegynder
20. december 2003 - 00:57 #67
Ja efter hovedvare vektoren således:

                  systemVareVector = new Vector();
          oekoVareVector = new Vector();
          saftVector = new Vector();
          oelVector = new Vector();
          almVareVector = new Vector();
          emballageVector = new Vector();
Avatar billede engelbrett Nybegynder
20. december 2003 - 01:11 #68
Således ser LagerController klassen ud nu. Jeg har en fejl her: linie 73
input = (String[]) minVare;


public class LagerController implements Serializable
{
   
    private Vare minVare;
    private Lager mitLager;
    private FileOutputStream outStream;
    private ObjectOutputStream out;
    private ObjectInputStream in;
    private GUIController gui;
    private Vector hovedVareVector, systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector;
   
        //Constructor LagerController.
    public LagerController(GUIController gui) throws Exception {
        //Her loades den gemte fil
        //Hvis ike det lykkes giver programmet en fejl meddelelse
        //Vi tjekker hvilken fil der kommer ind
        Vector hovedVareVector;
        try{
          FileInputStream instream = new FileInputStream("TotalGemt.ser");
          ObjectInputStream in = new ObjectInputStream(instream);
          hovedVareVector = (Vector) in.readObject();
          in.close();
          System.out.println(hovedVareVector);
        } catch (Exception e){
          gui.loadFejl();
         
          hovedVareVector = new Vector();
          systemVareVector = new Vector();
          oekoVareVector = new Vector();
          saftVector = new Vector();
          oelVector = new Vector();
          almVareVector = new Vector();
          emballageVector = new Vector();
       
   
        }
        Lager mitLager = new Lager(hovedVareVector);
        this.gui = gui;

    }   
   
   
    //ny vector, hvor...
    public void addVare(String[] input, int selected) {
   
    System.out.println("addvareValgt");
   
    input = (String[]) minVare;
   
    Vector denneVector = mitLager.getHVVector();
   
    if(selected == 1) {
        Vector sysVare = (Vector)denneVector.get(0);
        sysVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(sysVare);
       
        System.out.println("sysVare "+sysVare.toString());
       
    }
    if(selected == 2) {
        Vector ecoVare = (Vector)denneVector.get(1);
        ecoVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(ecoVare);
       
        System.out.println("ecoVare "+ecoVare.toString());
       
    }
    if(selected == 3) {
        Vector saftVare = (Vector)denneVector.get(2);
        saftVare.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(saftVare);
       
        System.out.println("saft: "+saftVare.toString());
       
    }
    if(selected == 4) {
        Vector oel = (Vector)denneVector.get(3);
        oel.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(oel);
       
        System.out.println("Øl: "+oel.toString());
       
    }
    if(selected == 5) {
        Vector alm = (Vector)denneVector.get(4);
        alm.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(alm);
       
        System.out.println("almVare: "+alm.toString());
       
    }
    if(selected == 6) {
        Vector emballage = (Vector)denneVector.get(5);
        emballage.add(input);
        gui.getHovedVare().sethovedvareGUIComboBox(emballage);
       
        System.out.println("emballage: "+emballage.toString());
       
    }
       
    }
   
    public Vector getHovedVareVector() {
    return mitLager.getHVVector();
    }
       
    //Denne metode gemmer hovedvarevektoren med dens indhold i filen
    //"TotalGemt.ser" vi tjkker hvilke data den indeholder
    public void saveHovedvareVector(Vector obj, String filnavn)
  {
     
    try
    {
      FileOutputStream outStream = new FileOutputStream("TotalGemt.ser");
      ObjectOutputStream out = new ObjectOutputStream(outStream);
      out.writeObject(mitLager.getHVVector());
      out.close();
      System.out.println("filen blev gemt"+ mitLager.getHVVector());
    }
    catch (IOException e)
    {
          System.out.println("Fejl: "+e);
        }
  }
   
   
    //Udskriver den samlede status af Hovedvare vektoren
    public void printVector(){
        System.out.print(mitLager.getHVVector());
       
    }
   
}
Avatar billede arne_v Ekspert
20. december 2003 - 15:18 #69
Du kan ikke typecaste fra Vare til String[].
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester