package app1;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
class Menu implements ActionListener
{
private JMenuBar menuBar;
private String nFileMenu[] = {"Nowy", "Otworz", "Zapisz", "Zapisz jako","Zamknij"};
private JMenuItem[] iFileMenu;
private String[] nEditMenu = {"Cofnij","Wytnij","Kopiuj","Wklej"};
private JMenuItem[] iEditMenu;
private String[] nHelpMenu = {"Pomoc", "O programie"};
private JMenuItem[] iHelpMenu;
private JMenu fileMenu;
private JMenu editMenu;
private JMenu helpMenu;
public Menu()
{
fileMenu = new JMenu("Plik");
editMenu = new JMenu("Edycja");
helpMenu = new JMenu("Pomoc");
iFileMenu[5] = new JMenuItem();
iEditMenu[4] = new JMenuItem();
iHelpMenu[2] = new JMenuItem();
for (int i = 0; i <= 4; i++)
{
iFileMenu[i] = new JMenuItem(nFileMenu[i]);
fileMenu.add(iFileMenu[i]);
}
for (int i = 0; i <= 3; i++)
{
iEditMenu[i] = new JMenuItem(nEditMenu[i]);
editMenu.add(iEditMenu[i]);
}
for (int i = 0; i < 2; i++)
{
iHelpMenu[i] = new JMenuItem(nHelpMenu[i]);
helpMenu.add(iHelpMenu[i]);
}
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(helpMenu);
}
public JMenuBar getMenuBar() {
return menuBar;
}
public void actionPerformed(ActionEvent ae) {
}
}
public class Application extends JFrame {
private static final long serialVersionUID = 5790815098739799108L;
private JPanel contentPane;
public Application() throws HeadlessException {
super();
this.setTitle("Aplikacja v1.0");
this.setSize(300,300);
this.setLocationRelativeTo(null);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we){
dispose();
System.exit(0);
}
});
contentPane = (JPanel)this.getContentPane();
Menu menu = new Menu();
contentPane.add(menu.getMenuBar());
}
public static void main(String[] args) {
Application application = new Application();
application.setVisible(true);
}
}
Mam oto taki kod. Chce w klasie Application utworzyc obiekt menu, który stworzy mi menu do tej ramki.
Konstruktor klasy Menu wywołuje się automatem jak stworzę jego obiekt tak? No ale jak utworze obiekt klasy i wrzuce go do konstruktora klasy Appliaction to jest warning (eclipse) ze nie zostanie nigdy odczytany. Więc utworzylem geta do menubara i odwołałem sie do niego wrzucając do JPanelu ale przy kompilacji mam błąd
Exception in thread "main" java.lang.NullPointerException
at app1.Menu.<init>(Application.java:32)
at app1.Application.<init>(Application.java:81)
at app1.Application.main(Application.java:88)
P.S dopiero zaczynam sie bawic z java