Dlaczego program nie uruchamia się

0

Chcę jak na razie zrobić menu, ale już na tym etapie program nie działa i nie rozumiem czemu. Rozumiem, że czepia się maina,ale dlaczego to już pojęcia nie mam.
W konsoli eclipse pisze mi coś takiego:

at java.awt.Container.add(Unknown Source)
	at javax.swing.JFrame.addImpl(Unknown Source)
	at java.awt.Container.add(Unknown Source)
	at Pro.<init>(Pro.java:42)
	at Pro.main(Pro.java:158) 

Załączam jeszcze kod źródłowy:

import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRootPane;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;


public class Pro extends JFrame implements WindowListener, ActionListener, MenuListener{

	boolean newEnabled=true, saveEnabled=false, exitEnabled=true;
	JMenuItem newItem=new JMenuItem("New"), saveItem=new JMenuItem("Save"), exitItem=new JMenuItem("Exit");
	JPanel pleft, pright;
	JButton button;
	
	public Pro() throws HeadlessException {
		// TODO Auto-generated constructor stub
		setTitle("Dyfrakcja i interferencja");
        setSize(900,600);
        setResizable(true);
		
        JMenuBar menuBar=new JMenuBar();
        JMenu fileMenu=new JMenu("File");
        add(menuBar);
        menuBar.add(fileMenu);
        fileMenu.add(newItem);
        fileMenu.add(saveItem);
        fileMenu.add(exitItem);
       // JRootPane root=getRootPane();
       // root.setJMenuBar(menuBar);
        add(pleft,BorderLayout.WEST);
        add(pright,BorderLayout.EAST);
		newItem.addActionListener(this);
		saveItem.addActionListener(this);
		exitItem.addActionListener(this);
		fileMenu.addMenuListener(this);
		button=new JButton("ok");
		pright.add(button);
		button.addActionListener(this);
		setVisible(true);
	}

	public Pro(GraphicsConfiguration arg0) {
		super(arg0);
		// TODO Auto-generated constructor stub
	}

	public Pro(String arg0) throws HeadlessException {
		super(arg0);
		// TODO Auto-generated constructor stub
	}

	public Pro(String arg0, GraphicsConfiguration arg1) {
		super(arg0, arg1);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		Object source=e.getSource();
		if(source==newItem){
			newEnabled=false;
			saveEnabled=false;
			exitEnabled=true;
		}
		if(source==saveItem){
			newEnabled=true;
			saveEnabled=false;
			exitEnabled=true;
		}
		if(source==exitItem){
			System.exit(0);
		}
		if(source==button){
			System.exit(0);
		}
	}

	@Override
	public void menuCanceled(MenuEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void menuDeselected(MenuEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void menuSelected(MenuEvent arg0) {
		// TODO Auto-generated method stub
		newItem.setEnabled(newEnabled);
		saveItem.setEnabled(saveEnabled);
		exitItem.setEnabled(exitEnabled);
	}

	
	@Override
	public void windowActivated(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowClosed(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowClosing(WindowEvent arg0) {
		// TODO Auto-generated method stub
		System.exit(0);
	}

	@Override
	public void windowDeactivated(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowDeiconified(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowIconified(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void windowOpened(WindowEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Pro a=new Pro();
	}

}

0

Może byś łaskawie zaznaczył wiersze 42 i 158?

        add(pleft,BorderLayout.WEST);
        add(pright,BorderLayout.EAST);

Te wiersze chyba generują błąd, pleft i pright jest nullem.

0

Faktycznie. Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1