asmjan Skrevet 7. november 2005 Del Skrevet 7. november 2005 Får denne feilmeldingen, vet jeg peker på noe feil, men finner ikke ut hva, så hadde vært veldig takknemelig hvis noen kunne hjulpet meg, har sittet flere timer uten å finne feilen. getMeny --> Klarer ikke å hente hente raden ORA-00936: missing expression java.lang.NullPointerException import javax.swing.*; import java.util.*; import java.awt.*; import java.awt.event.*; public class EndreMenyGUI extends JFrame { private final int INSERT = 1, DELETE = 2, UPDATE = 3, UNDEF = 0; private int valgtOperasjon = UNDEF; private int indeksForValgtRad; private MenyKnappPanel sørPanel; private EndreMenyPanel tabell; private EndreMenyDAO data; private String[] tabellKolonner = {"ID", "NAVN", "TYPE", "BESKRIVELSE", "PRIS"}; public EndreMenyGUI() { super("Meny register"); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { avslutt(); } } ); // opprett panelet med JTable tabell = new EndreMenyPanel(); //Lag overskriftene for (int i = 0; i < 5; i++) tabell.getModell().addColumn(tabellKolonner); // Hent data data = new EndreMenyDAO(); ArrayList liste = data.hentAlleRaderFraMenyTabellen(); // Sett data inn i JTable Iterator it = liste.iterator(); while (it.hasNext()) { menyVO men = (menyVO) it.next(); String[] rad = {""+ men.getId(), men.getNavn(), men.getType(), men.getBeskrivelse(), men.getPris()}; tabell.getModell().addRow(rad); } // Knappe panel sørPanel = new MenyKnappPanel(); sørPanel.getSettInnKnapp().addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { valgtOperasjon = INSERT; deaktiverSettInnKnappene(); String s[] = {null,null,null,null}; tabell.getModell().addRow(s); //hent indeks for den nye raden (som er siste rad) indeksForValgtRad = tabell.getTabell().getRowCount()-1; // Nå skal det ikke være mulig å velge en rad // før operasjonen er utført eller avbrudt tabell.getTabell().setRowSelectionAllowed(false); //aktiver/deaktiver knappene aktiverDbKnapper(); } } ); sørPanel.getSlettKnapp().addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // Er en rad valgt? // HENT INDEKS FOR VALGT RAD indeksForValgtRad = tabell.getTabell().getSelectedRow(); // Nå skal det ikke være mulig å velge en rad // før operasjonen er utført eller avbrudt tabell.getTabell().setRowSelectionAllowed(false); if (indeksForValgtRad > -1){ valgtOperasjon = DELETE; deaktiverSettInnKnappene(); aktiverDbKnapper(); } } } ); sørPanel.getUpdateKnapp().addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // Er en rad valgt? // HENT INDEKS FOR VALGT RAD indeksForValgtRad = tabell.getTabell().getSelectedRow(); // Nå skal det ikke være mulig å velge en rad // før operasjonen er utført eller avbrudt tabell.getTabell().setRowSelectionAllowed(false); if (indeksForValgtRad > -1){ valgtOperasjon = UPDATE; deaktiverSettInnKnappene(); aktiverDbKnapper(); // start en transaksjon data.startTransaksjon(); // Hent så inn friske data fra databasen og //sett inn i JTable // Raden er låst for oppdatering menyVO meny = data.getMeny( Integer.parseInt((String) tabell.getModell().getValueAt( indeksForValgtRad,0))); // Sett ferske data i JTable tabell.getTabell().setValueAt( meny.getId() + "", indeksForValgtRad, 0); tabell.getTabell().setValueAt( meny.getNavn(), indeksForValgtRad, 1); tabell.getTabell().setValueAt( meny.getType(), indeksForValgtRad, 2); tabell.getTabell().setValueAt( meny.getBeskrivelse(), indeksForValgtRad, 3); tabell.getTabell().setValueAt( meny.getPris(), indeksForValgtRad, 4); } } } ); sørPanel.getBekreftKnapp().addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { bekreft(); } } ); sørPanel.getAvbrytKnapp().addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { avbryt(); } } ); getContentPane().add(sørPanel, BorderLayout.SOUTH); deaktiverDbKnapper(); // Vis tabellen getContentPane().add(new JScrollPane(tabell), BorderLayout.CENTER); setSize(600,400); setVisible(true); } private void avslutt() { data.lukk(); System.exit(0); } private void deaktiverDbKnapper() { sørPanel.getBekreftKnapp().setEnabled(false); sørPanel.getAvbrytKnapp().setEnabled(false); } private void aktiverDbKnapper() { sørPanel.getBekreftKnapp().setEnabled(true); sørPanel.getAvbrytKnapp().setEnabled(true); } private void aktiverSettInnKnappene() { sørPanel.getSettInnKnapp().setEnabled(true); sørPanel.getSlettKnapp().setEnabled(true); sørPanel.getUpdateKnapp().setEnabled(true); } private void deaktiverSettInnKnappene() { sørPanel.getSettInnKnapp().setEnabled(false); sørPanel.getSlettKnapp().setEnabled(false); sørPanel.getUpdateKnapp().setEnabled(false); } private void bekreft() { aktiverSettInnKnappene(); deaktiverDbKnapper(); if (valgtOperasjon == INSERT) { menyVO meny = new menyVO( Integer.parseInt( (String) tabell.getModell().getValueAt( indeksForValgtRad,0)), (String)tabell.getModell().getValueAt( indeksForValgtRad,1), (String) tabell.getModell().getValueAt( indeksForValgtRad,2), (String) tabell.getModell().getValueAt( indeksForValgtRad,3), (String) tabell.getModell().getValueAt( indeksForValgtRad,4)); // Sett inn i databasen int returverdi = data.settInnMeny(meny); // Mislykkes innsettingen, fjern raden fra JTable if (returverdi == -1) tabell.getModell().removeRow(indeksForValgtRad); } else if (valgtOperasjon == DELETE) { // Hent indeks på valgt rad int antall = data.slettEnMeny( Integer.parseInt((String) tabell.getModell().getValueAt( indeksForValgtRad,0))); if (antall == 1) tabell.getModell().removeRow(indeksForValgtRad); } else if (valgtOperasjon == UPDATE) { // Hent data fra JTable // indeksen er tatt vare på menyVO meny = new menyVO( Integer.parseInt( (String) tabell.getModell().getValueAt( indeksForValgtRad,0)), (String) tabell.getModell().getValueAt( indeksForValgtRad,1), (String) tabell.getModell().getValueAt( indeksForValgtRad,2), (String) tabell.getModell().getValueAt( indeksForValgtRad,3), (String) tabell.getModell().getValueAt( indeksForValgtRad,4)); data.updateEnMeny(meny); // avslutt transaksjon data.avsluttTransaksjon(EndreMenyDAO.COMMIT); } valgtOperasjon = UNDEF; tabell.getTabell().setRowSelectionAllowed(true); } private void avbryt() { aktiverSettInnKnappene(); deaktiverDbKnapper(); if (valgtOperasjon == INSERT) { // pass på at insatte raden blir fjernet tabell.getModell().removeRow(indeksForValgtRad); } else if (valgtOperasjon == DELETE) { // Gjør ingenting } else if (valgtOperasjon == UPDATE) { // avslutt transaksjon data.avsluttTransaksjon(EndreMenyDAO.ROLLBACK); // indeksForValgtRad er indeks for raden som endres // Hent så inn friske data fra databasen og // sett inn i JTable // Raden er låst for oppdatering menyVO meny = data.getMenyForVisning( Integer.parseInt((String) tabell.getModell().getValueAt( indeksForValgtRad,0))); // Sett ferske data i JTable tabell.getTabell().setValueAt( meny.getId() + "", indeksForValgtRad, 0); tabell.getTabell().setValueAt( meny.getNavn(), indeksForValgtRad, 1); tabell.getTabell().setValueAt( meny.getType(), indeksForValgtRad, 2); tabell.getTabell().setValueAt( meny.getBeskrivelse(), indeksForValgtRad, 3); tabell.getTabell().setValueAt( meny.getPris(), indeksForValgtRad, 4); } valgtOperasjon = UNDEF; tabell.getTabell().setRowSelectionAllowed(true); } public static void main(String[] args) { EndreMenyGUI app = new EndreMenyGUI(); } } Lenke til kommentar
bragoon Skrevet 7. november 2005 Del Skrevet 7. november 2005 Du får ikke noe info om hvilken linje feilen er på? Ser ikke helt umiddelbart hva feilen kan være, her er litt info om nullpointer: http://java.sun.com/j2se/1.4.2/docs/api/ja...rException.html Man får ofte nullpointer når man prøver å bruke objekter som ikke er lagd ennå. Hvilket program skriver du java i? hvis du bruker notepad eller noe i den duren anbefaler jeg eclipse, det hjelper deg veldig i å finne kode som ikke kjører. Lenke til kommentar
asmjan Skrevet 7. november 2005 Forfatter Del Skrevet 7. november 2005 skriver i eclipse.. resten av feilomeldingen er: java.lang.NullPointerException at EndreMenyGUI$4.actionPerformed(EndreMenyGUI.java:119) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Lenke til kommentar
AssKicR Skrevet 7. november 2005 Del Skrevet 7. november 2005 (endret) Vennligst bruk [ CODE][/ CODE] tags.. litt mer leselig PS: Sjekk linje 119 Endret 7. november 2005 av AssKicR Lenke til kommentar
asmjan Skrevet 8. november 2005 Forfatter Del Skrevet 8. november 2005 Hvet ikke code/code tags er for noe.. Men det er når jeg skal endre en meny som er probleme først kommer nullpointerexception, deretter kommer denne feilmeldingen: ORA-01747: invalid user.table.column, table.column, or column specification Kan noen forklare meg hva denne kan skyldes eller betyr? Takk for hjelpen:) Lenke til kommentar
mikaelandre Skrevet 8. november 2005 Del Skrevet 8. november 2005 den siste er en feilmelding i oracle. google ORA-01747 så finner du ut hva det er. ser ut som en feil i spørringa di Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå