![]() |
![]() |
#1 |
Bananaman
Join Date: Jul 2006
Location: Liverpool/Edinburgh
Posts: 4,817
|
![]()
Were instructed to use eclipse for our java work, now on the uni lab comps they use 3.2 and 3.3 (but default is 3.2) i can't get 3.2, so i'm using 3.3.
Problem is I create a new project and load to simple ass java files into it, but i cannot for the life of my run it, when i KNOW it runs fine on the uni labs (3.2). I tried it on 3.3 on the lab comps today and it spat out the exact same error, about not being able to find the main class...: "java.lang.NoClassDefFoundError: BounceMain Exception in thread "main" " I'll upload the two java files now, but i know they're Ok. What should i be looking out for? Really getting to me this, becuase i need to start some real coding but if i can't rely on it to actually interpret or compile whats the point? |
![]() |
![]() |
![]() |
#2 |
Bananaman
Join Date: Jul 2006
Location: Liverpool/Edinburgh
Posts: 4,817
|
![]()
Right beansprouts uploader doesn't like java or txt files... So unfortunately you get them posted here!
BounceMain Code:
import javax.swing.*; /************************************************* * This is the main application class. * All it does is initialize the application, * and open a single window. * BouncePanel does all the work. *************************************************/ public class BounceMain { JFrame mainWindow; BouncePanel helloPanel; // Create a new window, and put helloPanel inside it. public BounceMain() { mainWindow = new JFrame("Bouncing Ball"); mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); helloPanel = new BouncePanel(); mainWindow.getContentPane().add(helloPanel); mainWindow.pack(); mainWindow.setVisible(true); } private static void createAndShowGUI() { // Make sure we have nice window decorations. JFrame.setDefaultLookAndFeelDecorated(false); // Create an actual instance of HelloBounceApp new BounceMain(); } public static void main(String[] args) { // Schedule a job for the event-dispatching thread: // creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } } BouncePanel Code:
import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; public class BouncePanel extends JComponent implements ComponentListener, Runnable { final static long serialVersionUID = 0; // kill warning // constants final static BasicStroke stroke = new BasicStroke(2.0f); // fields float xsize,ysize; // size of window float xpos,ypos; // position of ball float xlen,ylen; // size of ball float speed; // distance the ball moves in each frame float dx,dy; // current speed + direction of ball int delay; // delay between frames in miliseconds Thread animThread; // animation thread /************************************************* * Draws the ball on the screen. *************************************************/ public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g.create(); // get the current window size Dimension dim = getSize(); xsize = dim.width; ysize = dim.height; // clear background to white g2.setPaint(Color.white); g2.fill(new Rectangle2D.Double(0,0,xsize,ysize)); // draw ball g2.setPaint(Color.red); g2.fill(new Ellipse2D.Double(xpos, ysize-ypos-ylen, xlen, ylen)); g2.setColor(Color.black); g2.draw(new Ellipse2D.Double(xpos, ysize-ypos-ylen, xlen, ylen)); g2.dispose(); } // empty methods that are required by the GUI event loop public void componentHidden (ComponentEvent e) { } public void componentMoved (ComponentEvent e) { } public void componentResized(ComponentEvent e) { } public void componentShown (ComponentEvent e) { } /**************************************************** * Checks to see if the ball has hit any walls. * Called from within run(). ****************************************************/ public void checkWalls() { if (xpos + xlen >= xsize) { xpos = xsize - xlen; dx = -dx; } if (xpos < 0) { xpos = 0; dx = -dx; } if (ypos + ylen >= ysize) { ypos = ysize - ylen; dy = -dy; } if (ypos < 0) { ypos = 0; dy = -dy; } } /*********************************************************** * This is the animation thread. * The code here is what actually causes the ball to bounce. ***********************************************************/ public void run() { while (true) { // loop forever // update position xpos += dx; ypos += dy; // check to see if the ball has hit any walls checkWalls(); // sleep a bit until the next frame try { Thread.sleep(delay); } catch (InterruptedException e) { break; } // refresh the display repaint(); } } /**************************************************** * This is a constructor for the BouncePanel class. * It initializes all the values that the class needs * in order to work properly. ****************************************************/ public BouncePanel() { // set values for all the variables xsize = 480; ysize = 360; xpos = 240; ypos = 180; xlen = 60; ylen = 60; speed = 5; dx = speed; dy = speed; delay = 10; // set up window properties setBackground(Color.white); setOpaque(true); setPreferredSize(new Dimension((int) xsize, (int) ysize)); setFocusable(true); addComponentListener(this); // start the animation thread animThread = new Thread(this); animThread.start(); } } |
![]() |
![]() |
![]() |
Thread Tools | |
Display Modes | |
|
|