Click to See Complete Forum and Search --> : Newbie -- Class def error?


tecumsa
09-10-2007, 10:23 AM
I tried creating my first program outside of assignements, and I am getting a NoClassDefFoundError, but I don't understand why, so far as I can see the class is there.


import java.awt.*;
import javax.swing.*;

public class NewMadness extends JFrame {

// set up row 1
JPanel row1 = new JPanel();
JLabel bannerTF = new JLabel("Thermo Fisher Scientific");

// set up row 2
JPanel row2 = new JPanel();
JLabel bannerOEOM = new JLabel("OE/OM How-To");

// set up row 4
JPanel row4 = new JPanel();
ButtonGroup option = new ButtonGroup();
JCheckBox add = new JCheckBox("Add", true);
JCheckBox edit = new JCheckBox("Edit", false);
JCheckBox delete = new JCheckBox("Delete", false);


public NewMadness() {
super("OEOM How-To");
setSize(550, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout layout = new GridLayout(5, 1, 1, 1);
setLayout(layout);

FlowLayout layoutTF = new FlowLayout(FlowLayout.CENTER);
layoutTF.setVgap(0);
row1.setLayout(layoutTF);

row1.add(bannerTF);
add(row1);

row2.setLayout(layoutTF);
row2.add(bannerOEOM);
add(row2);

option.add(add);
option.add(edit);
option.add(delete);
row4.setLayout(layoutTF);
row4.add(add);
row4.add(edit);
row4.add(delete);
add(row4);

setVisible(true);
}

public static void main(String[] arguments) {
NewMadness frame = new NewMadness();
}
}

tecumsa
09-10-2007, 01:03 PM
OK, I found the resolution, sort of, but don't understand why.

1) If I compile under NetBeans (version set to 1.3) and do not set it as the main class I get the message (regardless as to where I run it):
Exception in thread "main" java.lang.NoClassDefFoundError: NewMaddness

2) If I compile under NetBeans and set it as the main class it runs in both java and NetBeans

3) If I compile it using javac (from the command line) I get the message:
Exception in thread "main" java.lang.UnsupportedClassVersionError: NewMadness (U
nsupported major.minor version 50.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

In all cases I have to add getContentPane(). in front of my panel references, ex:
getContentPane().setLayout(layout);
or
row1.add(bannerTF);
getContentPane().add(row1);