18. december 2003 - 19:31Der 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();
---------------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 {
//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(); } }
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 {
/** 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); } });
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);
/** * 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. */
/** * @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;
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; }
/** 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();
/** * 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) {
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();
/** * @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
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; }
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).
/** * @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;
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; }
/** * 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();
systemVareVector, oekoVareVector, saftVector, almVareVector, emballageVector, oelVector som ligger i hovedvarevectoren skal vises i hovedvareGUIComboBoxen når man har valgt den respektive hovedvaregruppe i forsideComboBoxen.
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]); }
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)); } }
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
/** * @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;
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:
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!!!
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.
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:-)
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?
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.
Vector hovedVareVector; try{ hovedVareVector = (Vector) in.readObject(); } catch (Exception e){ hovedVareVectoe = new Vector(); // put under vektorerne ind her } mitLager = new Lager(hovedVareVektor);
/** * @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 {
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); }
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); } }
/** * 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;
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?
systemVareVector = new Vector(); oekoVareVector = new Vector(); saftVector = new Vector(); oelVector = new Vector(); almVareVector = new Vector(); emballageVector = new Vector();
//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) {
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());
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.