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();
}
}