java.lang.NullPointerException problem

Programovacie jazyky, rady, poradňa...
phyuck
Novice
Novice
Príspevky: 1
Registrovaný: 21 máj 2009, 18:24

java.lang.NullPointerException problem

Príspevok od používateľa phyuck »

Ahoj riesim v jave takyto problem.
Mam Frame , v ktorom sa po stlaceni Buttonu ma vlozit do databazy prvok ktory je napisany v TextFielde. Aplikaciu spustim bez problemov, ale ked stlacim Button, tak mi vyhodi:

Kód: Vybrať všetko

java.util.logging.LogManager$RootLogger log
INFO: Akcia - uloz
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at sk.toth.umb.utils.NewJFrame$4.actionPerformed(NewJFrame.java:226)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.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 javax.swing.JComponent.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.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(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) 

Kód: Vybrať všetko

Frame kod:


public class NewJFrame extends javax.swing.JFrame {
	
	
	private static Logger logger = Logger.getLogger("");
	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.jgoodies.looks.plastic.Plastic3DLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	private JMenuBar jMenuBar1;
	private JButton jButton1;
	private AbstractAction abstractAction1;
	private JButton jButton3;
	private JButton jButton2;
	private AbstractAction Exit;
	private static JTextField jTextField4;
	private static JTextField jTextField3;
	public static JTextField jTextField2;
	private JTable jTable1;
	private AbstractAction abstractAction2;
	private AbstractAction close;
	private JLabel jLabel1;
	private JLabel jLabel2;
	private JDialog jDialog1;
	private JMenuItem jMenuItem1;
	private JMenu jMenu2;
	private JMenu jMenu1;
		private  Cviky c = new Cviky();
	private  CvikyDaoPk dao ;

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
				
			}
		});
	}
	
	public NewJFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			FlowLayout thisLayout = new FlowLayout();
		getContentPane().setLayout(thisLayout);
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().add(getJButton2());
			getContentPane().add(getJButton3());
			getContentPane().add(getJTable1());
			getContentPane().add(getJTextField2());
			getContentPane().add(getJTextField3());
			getContentPane().add(getJTextField4());
			{
				jMenuBar1 = new JMenuBar();
				setJMenuBar(jMenuBar1);
				{
					jMenu1 = new JMenu();
					jMenuBar1.add(jMenu1);
					jMenu1.setText("File");
					{
						jMenuItem1 = new JMenuItem();
						jMenu1.add(jMenuItem1);
						jMenuItem1.setText("jMenuItem1");
						jMenuItem1.setAction(getExit());
					}
				}
				{
					jMenu2 = new JMenu();
					jMenuBar1.add(jMenu2);
					jMenu2.setText("About");
				}
			}
			pack();
			pack();
			pack();
			pack();
			pack();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private JButton getJButton2() {
		if(jButton2 == null) {
			jButton2 = new JButton();
			AnchorLayout jButton2Layout = new AnchorLayout();
			jButton2.setLayout(jButton2Layout);
			jButton2.setText("jButton2");
			jButton2.setAction(getAbstractAction1());
			jButton2.setBounds(227, 161, 113, 30);
		}
		return jButton2;
	}
	
	private AbstractAction getAbstractAction1() {
		if(abstractAction1 == null) {
			abstractAction1 = new AbstractAction("Insert") {
				/**
				 * 
				 */
				private static final long serialVersionUID = 1L;

				public void actionPerformed(ActionEvent evt) {
					
				
							logger.log(Level.INFO,"Akcia - uloz");
							c.setCvik(jTextField2.getText());
							c.setDruh(jTextField3.getText());
							c.setPrevedenie(jTextField4.getText());
					
							dao.Insert(c);		//NewJFrame.java:226
					
				}
			};
		}
		return abstractAction1;
	}
	
	
	protected JTextField getJTextField2() {
		if(jTextField2 == null) {
			jTextField2 = new JTextField();
			jTextField2.setPreferredSize(new java.awt.Dimension(34, 22));
			jTextField2.setText("cvik1");		
		}
		return jTextField2;
	}
	
	private JTextField getJTextField3() {
		if(jTextField3 == null) {
			jTextField3 = new JTextField();
			jTextField3.setText("druh1");
		}
		return jTextField3;
	}
	
	private JTextField getJTextField4() {
		if(jTextField4 == null) {
			jTextField4 = new JTextField();
			jTextField4.setText("prevedenie1");
			jTextField4.setPreferredSize(new java.awt.Dimension(85, 22));
		}
		return jTextField4;
	}

}

Dao kod:

Kód: Vybrať všetko

package sk.toth.umb.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import sk.toth.umb.hibernate.Cviky;

public class CvikyDaoPk {
	
	
	private SessionFactory sessionFactory;
	
	//konstruktor 
	public CvikyDaoPk (){
		
	Configuration config = new Configuration().configure();	
	sessionFactory = config.buildSessionFactory();
	 			
	}
	
	public void Insert(Cviky cviky)
	{
			
		
		Session session = sessionFactory.openSession();
		session.beginTransaction();
		session.save(cviky);
		System.out.println("Done");
		session.getTransaction().commit();
		session.close();
	}
}
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

Príspevok od používateľa pheo »

ked na to tak kukam zda sa ze je problem v tom ze dao premenná je null :). ked vytvaras ten JFrame tak zabudas nainicializovať premennú dao, osobne by som dao riesil inak :) ale budiž, dao si musis niekde hodit niekde kde by si mal k tomu pristup, vacsinou utility class. Alebo zvoliť opačný prístup, dat setter na dao, a vytvoriť factory class pre Jframe, ktorý ti ho vytvorí a aj vlozí závysloť na CvikyDaoPk
Napísať odpoveď