ok, im trying to use the set text method and the code im using it on looks as follows;
/** Convert the stringbuilder into an actual string, then return it */
String completeMatchList = matchList.toString();
String [] splitresult;
String name = matchList.toString();
splitresult= name.split("\\s");
//txtbgreenentry.setText(splitresult[0]);
//txtbyellowentry.setText(splitresult[0]);
/** System.out.println(splitresult[5]); - this was added to test that the text has been broken down in to individual strings, then it prints off in an array to the console */
for (int i = 0; i < 18; i++)
{
sd.getyh(i).getEmptyMatches();
sd.getgh(i).getEmptyMatches();
}
return completeMatchList;
where the two names for the text areas are txtbgreenentry and txtbyellowentry, im under the assumption that i need to use
txtbgreenentry.setText(splitresult[0]);
but the problem is i am getting the error cannot find symbol variable txtbgreenentry, how can i fix this? is the problem to do with my actionlistener code? does it need to call the setetxt method and if so how do ido this? all my code (for the 2 classes of issue at least)
are below
matchlist
public class Matchlist
{
private studentdetails sd = new studentdetails();
/** matchList StringBuilder stores the match list in progress */
private StringBuilder matchList = new StringBuilder();
private int loop = 0;
private int matches = 0;
public Matchlist()
{
sd.createstudentdetails();
}
/** Method to create the actual match list, returns the list as a string */
public String CreateMatch()
{
int g;
int y;
for (g = 0; g < 4; g++) /** this is for the game */
{
for (y = 17; y > -1; y--) /** used for the yellow house */
{
/** Check to see if the game is empty */
if (sd.getgh(y).getGame(g).equals(""))
{
for (int x = 0; x < 18; x++) /** used for the yellow house */
{
if (sd.getyh(x).getGame(g).equals(""))
{
if (sd.getgh(y).getC_lass() != sd.getyh(x).getC_lass()) /** used for the green house */
{
/** Check to see if the person has played the other person */
if (sd.getgh(y).checkPlayed(sd.getyh(x).getName()) == false)
{
/** Set the game to the name of the opponent played */
sd.getyh(x).changeGame(g, sd.getgh(y).getName());
sd.getgh(y).changeGame(g, sd.getyh(x).getName());
/** Build the match list step by step using append with \n at the end to create a new line */
matchList.append(sd.getyh(x).getName() + " vs " + sd.getgh(y).getName() +"\n");
matches++; /** add to the matches */
break;
}
}
}
}
}
}
}
/** Convert the stringbuilder into an actual string, then return it */
String completeMatchList = matchList.toString();
String [] splitresult;
String name = matchList.toString();
splitresult= name.split("\\s");
//txtbdisplaymatch.setText(splitresult[0]);
txtbyellowentry.setText(splitresult[0]);
/** System.out.println(splitresult[5]); - this was added to test that the text has been broken down in to individual strings, then it prints off in an array to the console */
for (int i = 0; i < 18; i++)
{
sd.getyh(i).getEmptyMatches();
sd.getgh(i).getEmptyMatches();
}
return completeMatchList; /** returns the match list that has been completed */
}
}
interface
a
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class MyPanel extends JPanel implements ActionListener
{ //add the "implements ActionListener" line so the class knows its going to take an input
private Matchlist ml = new Matchlist();
private JButton btngenerate;
public JTextArea txtbdisplaymatch;
private JLabel lblvs;
private JLabel lblgreenhouse;
private JLabel lblyellowhouse;
private JLabel lblname;
private JTextField txtbgreenentry;
private JTextField txtbyellowentry;
private JTextField txtbenterscoreg;
private JTextField txtbenterscorey;
private JButton btnfinalresults;
private JScrollPane scrollpane;
private JLabel lblcurrentscore;
private JTextField txtbcurrentgs;
private JTextField txtbcurrentys;
public MyPanel()
{
//construct components
btngenerate = new JButton("Generate Match List");
txtbdisplaymatch = new JTextArea(5, 5);
scrollpane = new javax.swing.JScrollPane(txtbdisplaymatch);
scrollpane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
lblvs = new JLabel(" vs");
lblgreenhouse = new JLabel(" Green House");
lblyellowhouse = new JLabel(" Yellow House");
lblname = new JLabel(" Name");
txtbgreenentry = new JTextField(5);
txtbyellowentry = new JTextField(5);
txtbenterscoreg = new JTextField(5);
txtbenterscorey = new JTextField(5);
btnfinalresults = new JButton("Enter Match Score");
lblcurrentscore = new JLabel ("Current Score");
txtbcurrentgs = new JTextField (5);
txtbcurrentys = new JTextField (5);
//adjust size and set layout
setPreferredSize(new Dimension(542, 542));
setLayout(null);
//add components
add(btngenerate);
add(scrollpane);
add(lblvs);
add(lblgreenhouse);
add(lblyellowhouse);
add(lblname);
add(txtbgreenentry);
add(txtbyellowentry);
add(txtbenterscoreg);
add(txtbenterscorey);
add(btnfinalresults);
add(lblcurrentscore);
add(txtbcurrentgs);
add(txtbcurrentys);
//set component bounds (only needed by Absolute Positioning)
btngenerate.setBounds(185, 25, 165, 20);
scrollpane.setBounds(60, 70, 415, 320); /**Changed it from setting the bounds on the textarea to setting them on the scrollpane */
lblvs.setBounds(285, 415, 25, 25);
lblgreenhouse.setBounds(385, 415, 100, 25);
lblyellowhouse.setBounds(120, 415, 100, 25);
lblname.setBounds(30, 445, 45, 25);
txtbgreenentry.setBounds(75, 445, 155, 20);
txtbyellowentry.setBounds(355, 445, 155, 20);
txtbenterscoreg.setBounds(235, 445, 20, 20);
txtbenterscorey.setBounds(330, 445, 20, 20);
btnfinalresults.setBounds(185, 495, 205, 25);
lblcurrentscore.setBounds(245, 560, 205, 25);
txtbcurrentgs.setBounds(150, 580, 25, 25);
txtbcurrentys.setBounds(390, 580, 25, 25);
//add action listener
btngenerate.addActionListener(this); //use the components name and use the ".addActionListener()" method to enable this component to take inputs
}
public void actionPerformed(ActionEvent e)
{//create a method called actionPerformed, this method will contain the code which is run when the component is pressed.
if (e.getSource() == btngenerate)
{ //use the getSource() method and use it to see if it is equal to the compoenent.
txtbdisplaymatch.setText(ml.CreateMatch()); //use the setText() method to add text from variable a to the txtbdisplaymatch which will display in the text area when the generate button is pressed.
}
}
public static void main(String[] args)
{
JFrame frame = new JFrame("MyPanel");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new MyPanel());
frame.pack();
frame.setVisible(true);
}
}