Gå til innhold

Java NullPointerException feil


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...