• 0

Stuck on a section of my project


Question

Working on a java project. Basically it is a simple bowling program that uses a gui to read in from a given text file a pre-determined amount of names and scores...runs through the standard 10 frame scoring system, prints out the score, and who won.

Now I can't seem to get it to print that out into the defined gui text field I have got. Any ideas? Here is what I have:

// Homework #3 Bowling Program Template
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JFrame;
import java.util.Scanner;
import java.io.*;
class BFrame{
	// represents the number of pins knocked down for ball 1
	private int ball1;

	// represents the number of pins knocked down for ball 1
	private int ball2;

	// represents the score up to and including the frame score
	private int fscore;

	// constructor for a BFrame object
	public BFrame(){
		ball1 = -1;
		ball2 = -1;
		fscore = -1;
	}

	// mutator methods
	public void setBall1(int x){
		ball1 = x;
	}
	public void setBall2(int x){
		ball2 = x;
	}
	public void setFscore(int x){
		fscore = x;
	}

	// accessor methods
	public int getBall1(){
		return ball1;
	}
	public int getBall2(){
		return ball2;
	}
	public int getFscore(){
		return fscore;
	}
}
class Bowler{
	// represents the name of the bowler
	private String name;

	// represents the 10 frames for the bowler
	private BFrame[] frames = new BFrame[10];

	// represents the extra ball for the 10th frame
	private int extraball;

	// represents the current frame the bowler is on
	// acts as a "slot" value for the frames array
	private int currentframe;

	// constructor for a Bowler object
	public Bowler(String n){
		name = n;
		extraball = -1;
		currentframe = 0;
		for (int i=0; i<10; i++){
			frames[i] = new BFrame();
		}
	}

	// accessor for bowler name
	public String getName(){
		return name;
	}

	// mutator to add the ball to the appropriate location
	// part of this method is written
	// 
	public void addBall(int pts){
		if (frames[currentframe].getBall1() == -1){
			frames[currentframe].setBall1(pts);
			if ((pts == 10) && (currentframe != 9)){ // strike
				currentframe++;
			}
		}
		else { // need to handle additional placement conditions
			   // be careful with the 10th frame


		}
	}

	// This method should populate each frame's framescore
	// according to standard 10-pin scoring rules.  It is
	// assumed that this method will only be called AFTER all
	// the balls have been entered.
	public void calcScore(){
	   // 


	}
	// method to print the bowler's sheet to the console
	// this method is intended for debugging purposes only
	public void printSheet(){
		System.out.println("\nBowling Sheet for " + name);
		for (int i=0; i<=currentframe; i++){
			System.out.print("Frame " + (i+1));
			System.out.print("  Ball 1: " + frames[i].getBall1());
			System.out.print("  Ball 2: " + frames[i].getBall2());
			System.out.println("  Frame Score: " + frames[i].getFscore());
		}
		System.out.println("Extra Ball: " + extraball);
	}

}
class Bowling extends JPanel{
	// create GUI objects
	private JLabel fileLabel;
	private JButton loadButton;
	private JTextField infileText;
	private JButton clearButton;
	private JTextArea displayText;
	private Bowler[] bowlers;

	// Constructor to Initialize grade
	public Bowling(){
		// initialize objects
		bowlers = new Bowler[2];
		fileLabel = new JLabel("Enter name of data file and press Load Scores: ");
		loadButton = new JButton("Load Scores");
		clearButton = new JButton("Clear All");
		infileText = new JTextField(15);
		displayText = new JTextArea(15, 30);
		displayText.setEditable(false);
		displayText.setFont(new Font("Courier", Font.PLAIN, 12));

		// add action listeners for objects
		loadButton.addActionListener(new loadButtonListener());

		// add objects to panel
		add(fileLabel);
		add(infileText);
		add(loadButton);
		add(displayText);
		add(clearButton);

		// size the panel
		setPreferredSize(new Dimension(800, 300));
		setBackground(Color.gray);

	}

	// create action listener class and actionPerformed method
	private class loadButtonListener implements ActionListener{
		public void actionPerformed(ActionEvent event){
			String file;
			file = infileText.getText();
			try{
				loadData(file);
			}
			catch(IOException e){
				System.out.println("Unable to load data file");
			}
		}
	}

	private void loadData(String s) throws IOException {
		Scanner infile = new Scanner(new File(s));
		String n;
		int p;
		bowlers[0] = new Bowler(infile.next());
		bowlers[1] = new Bowler(infile.next());
		while (infile.hasNext()){
			n = infile.next();
			p = infile.nextInt();
			// Add the code to do the following:
			// Based on the name read in add the ball score
			// to the appropriate bowlers sheet


		}
		// calculate the scores for each bowler and print the scores to the
		// GUI text area



		// prints the sheet to the console for debugging purposes only
		bowlers[0].printSheet();
		bowlers[1].printSheet();
	}
}
public class hw3bowling{
	public static void main(String [] args){
		JFrame frame = new JFrame("Bowling");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Bowling b = new Bowling();
		frame.getContentPane().add(b);
		frame.pack();
		frame.setVisible(true);
	}
}

I also know that two other sections aren't finished. I am still working on that also.

EDIT: should have mentioned that where I am stuck is within the public void loaddata section.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

The code for what you are trying to do seems to be missing completely. I don't see anything in the loadData() function that accesses the BFrame class, and the hw3bowling class seems to be orphaned.

Link to comment
Share on other sites

  • 0
The code for what you are trying to do seems to be missing completely. I don't see anything in the loadData() function that accesses the BFrame class, and the hw3bowling class seems to be orphaned.

Like I said there are some parts still being worked on. For the moment I am just trying to get it to print out the results to the gui text box. This is where I am stuck at. If I get can that then I can finish up on the addball and calcscore sections.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.