problem getting program compiled

hello.

my name is james mcfadden. i am having a difficulty compiling the following program. when i try to compile the program i get 12 errors. the program and errors are shown below. i am a newcomer to using arrays/strings with swing. would you be able to tell me how to solve these errors?

thank you.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

publicclass LogOnextends JDialog{

private JTextField jtfUN =new JTextField(20);

private JPasswordField jtfPW =new JPasswordField(20);

private JButton jbOK =new JButton("OK");

private JButton jbCancel =new JButton("Cancel");

private LogOn logOn =new LogOn();

String username;

String password;

String[] userUsernameArray =new String[2];

String[] userPasswordArray =new String[2];

String[] adminUsernameArray =new String[1];

String[] adminPasswordArray =new String[1];

public LogOn(){

this(null,true);

}

public LogOn(java.awt.Frame parent,boolean child){

super(parent, child);

userUsernameArray[0] ="Ann Smyth";

userUsernameArray[1] ="John Murphy";

userPasswordArray[0] ="1";

userPasswordArray[1] ="2";

adminUsernameArray[0] ="Administrator";

adminPasswordArray[0] ="0";

setTitle("Welcome to Home Entertainment");

JPanel jp1 =new JPanel(new GridLayout(2, 1));

jp1.add(new JLabel("Username"));

jp1.add(new JLabel("Password"));

JPanel jp2 =new JPanel(new GridLayout(2, 1));

jp2.add(jtfUN);

jp2.add(jtfPW);

JPanel jp3 =new JPanel(new BorderLayout(5, 2));

jp3.add(jp1, BorderLayout.WEST);

jp3.add(jp2, BorderLayout.CENTER);

JPanel jp4 =new JPanel();

jp4.add(jbOK);

jp4.add(jbCancel);

getContentPane().add(jp4, BorderLayout.SOUTH);

getContentPane().add(jp3, BorderLayout.CENTER);

jbOK.addActionListener(new ActionListener(){

publicvoid actionPerformed(ActionEvent e){

logOn.username = jtfUN.getText().trim();

logOn.password =new String(jtfPW.getPassword());

if(username == userUsernameArray && password == userPasswordArray){

UserMainMenu umm =new UserMainMenu();

umm.setVisible(true);

}

if(username == userUsernameArray && password != userPasswordArray || username != userUsernameArray && password == userPasswordArray){

JOptionPane.showMessageDialog(null,"Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

if(username == adminUsernameArray && password == adminPasswordArray){

AdminMainMenu amm =new AdminMainMenu();

amm.setVisible(true);

}

if(username == adminUsernameArray && password != adminPasswordArray || username != adminUsernameArray && password == adminPasswordArray){

JOptionPane.showMessageDialog(null,"Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

setVisible(false);

}

});

jbCancel.addActionListener(new ActionListener(){

publicvoid actionPerformed(ActionEvent e){

logOn =null;

setVisible(false);

}

});

}

}

-jGRASP exec: javac -g E:\CP4B Project\LogOn.java

LogOn.java:63: incomparable types: java.lang.String and java.lang.String[]

if(username == userUsernameArray && password == userPasswordArray){

^

LogOn.java:63: incomparable types: java.lang.String and java.lang.String[]

if(username == userUsernameArray && password == userPasswordArray){

^

LogOn.java:67: incomparable types: java.lang.String and java.lang.String[]

if(username == userUsernameArray && password != userPasswordArray || username != userUsernameArray && password == userPasswordArray){

^

LogOn.java:67: incomparable types: java.lang.String and java.lang.String[]

if(username == userUsernameArray && password != userPasswordArray || username != userUsernameArray && password == userPasswordArray){

^

LogOn.java:67: incomparable types: java.lang.String and java.lang.String[]

if(username == userUsernameArray && password != userPasswordArray || username != userUsernameArray && password == userPasswordArray){

^

LogOn.java:67: incomparable types: java.lang.String and java.lang.String[]

if(username == userUsernameArray && password != userPasswordArray || username != userUsernameArray && password == userPasswordArray){

^

LogOn.java:70: incomparable types: java.lang.String and java.lang.String[]

if(username == adminUsernameArray && password == adminPasswordArray){

^

LogOn.java:70: incomparable types: java.lang.String and java.lang.String[]

if(username == adminUsernameArray && password == adminPasswordArray){

^

LogOn.java:74: incomparable types: java.lang.String and java.lang.String[]

if(username == adminUsernameArray && password != adminPasswordArray || username != adminUsernameArray && password == adminPasswordArray){

^

LogOn.java:74: incomparable types: java.lang.String and java.lang.String[]

if(username == adminUsernameArray && password != adminPasswordArray || username != adminUsernameArray && password == adminPasswordArray){

^

LogOn.java:74: incomparable types: java.lang.String and java.lang.String[]

if(username == adminUsernameArray && password != adminPasswordArray || username != adminUsernameArray && password == adminPasswordArray){

^

LogOn.java:74: incomparable types: java.lang.String and java.lang.String[]

if(username == adminUsernameArray && password != adminPasswordArray || username != adminUsernameArray && password == adminPasswordArray){

^

12 errors

-jGRASP wedge2: exit code for process is 1.

-jGRASP: operation complete.

[8818 byte] By [james-mcfaddena] at [2007-11-27 9:38:50]
# 1

It tells you what the problem is. Do you understand the concept of an array? Using multiple arrays like that is probably not the best means of going about this. Try making a list of user objects.

Create a new Class which represents a user:

String name

String pass

boolean admin

etc....

Then store an array of these.

Anyway.

I assume you want the input to be checked to see if it is in the array. For this you will need a for loop and point to a specific item in the array.

For e.g.

username == userUsernameArray && password == userPasswordArray

this is comparing the String username with and Array not a single string. Try making a for loop which checks:

for(int i=0; i < userUsernameArray.length();i++){

if(username == userUsernameArray[i] && password == userPasswordArray){

//do something

}

}

Notice the this is looking at the i'th position in the array

Hope this helps :-)

ita6cgra at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 2

thanks for the help.

i did what you told me to as best as possible. when i tried to compile the program again i only got 4 errors this time, which isn't so bad. the modified program and errors are shown below. i don't know how to correct these errors.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class LogOn extends JDialog{

private JTextField jtfUN = new JTextField(20);

private JPasswordField jtfPW = new JPasswordField(20);

private JButton jbOK = new JButton("OK");

private JButton jbCancel = new JButton("Cancel");

private LogOn logOn = new LogOn();

public LogOn(){

this(null, true);

}

public LogOn(java.awt.Frame parent, boolean child){

super(parent, child);

setTitle("Welcome to Home Entertainment");

JPanel jp1 = new JPanel(new GridLayout(2, 1));

jp1.add(new JLabel("Username"));

jp1.add(new JLabel("Password"));

JPanel jp2 = new JPanel(new GridLayout(2, 1));

jp2.add(jtfUN);

jp2.add(jtfPW);

JPanel jp3 = new JPanel(new BorderLayout(5, 2));

jp3.add(jp1, BorderLayout.WEST);

jp3.add(jp2, BorderLayout.CENTER);

JPanel jp4 = new JPanel();

jp4.add(jbOK);

jp4.add(jbCancel);

getContentPane().add(jp4, BorderLayout.SOUTH);

getContentPane().add(jp3, BorderLayout.CENTER);

jbOK.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

logOn.username = jtfUN.getText().trim();

logOn.password = new String(jtfPW.getPassword());

User user = new User();

Administrator admin = new Administrator();

setVisible(false);

}

});

jbCancel.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

logOn = null;

setVisible(false);

}

});

}

}

class User{

String username;

String password;

String[] userUsernameArray = {"Ann Smyth", "John Murphy"};

String[] userPasswordArray = {"1", "2"};

for(int i = 0; i < userUsernameArray.length(); i++){

if(username == userUsernameArray[i]){

UserMainMenu umm = new UserMainMenu();

umm.setVisible(true);

}

if(username != userUsernameArray[i]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

for(int i = 0; i < userPasswordArray.length(); i++){

if(password == userPasswordArray[i]){

UserMainMenu umm = new UserMainMenu();

umm.setVisible(true);

}

if(password != userPasswordArray[i]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

}

class Administrator{

String username;

String password;

String[] adminUsernameArray = {"Administrator"};

String[] adminPasswordArray = {"0"};

for(int i = 0; i < adminUsernameArray.length(); i++){

if(username == adminUsernameArray[i]){

AdminMainMenu amm = new AdminMainMenu();

amm.setVisible(true);

}

if(username != adminUsernameArray[i]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

for(int i = 0; i < adminPasswordArray.length(); i++){

if(password == adminPasswordArray[i]){

AdminMainMenu amm = new AdminMainMenu();

amm.setVisible(true);

}

if(password != adminPasswordArray[i]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

}

-jGRASP exec: javac -g E:\CP4B Project\LogOn.java

LogOn.java:121: illegal start of type

for(int i = 0; i < userUsernameArray.length(); i++){

^

LogOn.java:139: <identifier> expected

}

^

LogOn.java:147: illegal start of type

for(int i = 0; i < adminUsernameArray.length(); i++){

^

LogOn.java:165: <identifier> expected

}

^

4 errors

-jGRASP wedge2: exit code for process is 1.

-jGRASP: operation complete.

james-mcfaddena at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 3

> for(int i = 0; i < userUsernameArray.length();

> i++){

>if(username == userUsernameArray){

>UserMainMenu umm = new UserMainMenu();

>umm.setVisible(true);

> }

>if(username != userUsernameArray){

> JOptionPane.showMessageDialog(null, "Error\n\nYou

> have entered an incorrect username and/or

> password\nPlease try again", null,

> JOptionPane.ERROR_MESSAGE);

>}

>

> for(int i = 0; i < userPasswordArray.length();

> i++){

>if(password == userPasswordArray){

>UserMainMenu umm = new UserMainMenu();

>umm.setVisible(true);

> }

>if(password != userPasswordArray){

> JOptionPane.showMessageDialog(null, "Error\n\nYou

> have entered an incorrect username and/or

> password\nPlease try again", null,

> JOptionPane.ERROR_MESSAGE);

>}

Your problem now is that you are defining i twice (once in each loop) to fix either call the val in loop 2 another name or remove the 'int' part from the second loop :-)

ita6cgra at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 4

i did what you told me to do and i still keep getting 4 errors. what do you think i should do next in order for me to be able to compile this program?

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class LogOn extends JDialog{

private JTextField jtfUN = new JTextField(20);

private JPasswordField jtfPW = new JPasswordField(20);

private JButton jbOK = new JButton("OK");

private JButton jbCancel = new JButton("Cancel");

private LogOn logOn = new LogOn();

public LogOn(){

this(null, true);

}

public LogOn(java.awt.Frame parent, boolean child){

super(parent, child);

setTitle("Welcome to Home Entertainment");

JPanel jp1 = new JPanel(new GridLayout(2, 1));

jp1.add(new JLabel("Username"));

jp1.add(new JLabel("Password"));

JPanel jp2 = new JPanel(new GridLayout(2, 1));

jp2.add(jtfUN);

jp2.add(jtfPW);

JPanel jp3 = new JPanel(new BorderLayout(5, 2));

jp3.add(jp1, BorderLayout.WEST);

jp3.add(jp2, BorderLayout.CENTER);

JPanel jp4 = new JPanel();

jp4.add(jbOK);

jp4.add(jbCancel);

getContentPane().add(jp4, BorderLayout.SOUTH);

getContentPane().add(jp3, BorderLayout.CENTER);

jbOK.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

logOn.username = jtfUN.getText().trim();

logOn.password = new String(jtfPW.getPassword());

User user = new User();

Administrator admin = new Administrator();

setVisible(false);

}

});

jbCancel.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

logOn = null;

setVisible(false);

}

});

}

}

class User{

int i, j;

String username;

String password;

String[] userUsernameArray = {"Ann Smyth", "John Murphy"};

String[] userPasswordArray = {"1", "2"};

for(i = 0; i < userUsernameArray.length(); i++){

if(username == userUsernameArray[i]){

UserMainMenu umm = new UserMainMenu();

umm.setVisible(true);

}

if(username != userUsernameArray[i]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

for(j = 0; j < userPasswordArray.length(); j++){

if(password == userPasswordArray[j]){

UserMainMenu umm = new UserMainMenu();

umm.setVisible(true);

}

if(password != userPasswordArray[j]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

}

class Administrator{

int k, l;

String username;

String password;

String[] adminUsernameArray = {"Administrator"};

String[] adminPasswordArray = {"0"};

for(k = 0; k < adminUsernameArray.length(); k++){

if(username == adminUsernameArray[k]){

AdminMainMenu amm = new AdminMainMenu();

amm.setVisible(true);

}

if(username != adminUsernameArray[k]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

for(l = 0; l < adminPasswordArray.length(); l++){

if(password == adminPasswordArray[l]){

AdminMainMenu amm = new AdminMainMenu();

amm.setVisible(true);

}

if(password != adminPasswordArray[l]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

}

-jGRASP exec: javac -g E:\CP4B Project\LogOn.java

LogOn.java:72: illegal start of type

for(i = 0; i < userUsernameArray.length(); i++){

^

LogOn.java:90: <identifier> expected

}

^

LogOn.java:99: illegal start of type

for(k = 0; k < adminUsernameArray.length(); k++){

^

LogOn.java:117: <identifier> expected

}

^

4 errors

-jGRASP wedge2: exit code for process is 1.

-jGRASP: operation complete.

james-mcfaddena at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 5

There are some major flaws in your code. How are you passing the username/password into the user class? (Which is not what I meant and should probably be renamed to 'authenticate')

The User class has all of its statements inside the class. All statements need to be in either a method or a constructor....

ita6cgra at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 6
Never compare String for equality with the == operator, use their equals(...) method instead.
prometheuzza at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 7
> Never compare String for equality with the ==> operator, use their equals(...) method instead.Haha I'm not on form today how did I miss that too @OP you should try starting fresh and doing the tutorials first. You seem to be missing some of the
ita6cgra at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 8
By the way, the length of an array is not obtained with a method call, it is a static field.That is, not :userUsernameArray.length()but :userUsernameArray.length
TimTheEnchantora at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 9

i did what you suggested (extra classes, etc) and i got 6 errors instead of 4 when i compiled the program this time. what's the next step?

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class LogOn extends JDialog{

private JTextField jtfUN = new JTextField(20);

private JPasswordField jtfPW = new JPasswordField(20);

private JButton jbOK = new JButton("OK");

private JButton jbCancel = new JButton("Cancel");

private LogOn logOn = new LogOn();

public LogOn(){

this(null, true);

}

public LogOn(java.awt.Frame parent, boolean child){

super(parent, child);

setTitle("Welcome to Home Entertainment");

JPanel jp1 = new JPanel(new GridLayout(2, 1));

jp1.add(new JLabel("Username"));

jp1.add(new JLabel("Password"));

JPanel jp2 = new JPanel(new GridLayout(2, 1));

jp2.add(jtfUN);

jp2.add(jtfPW);

JPanel jp3 = new JPanel(new BorderLayout(5, 2));

jp3.add(jp1, BorderLayout.WEST);

jp3.add(jp2, BorderLayout.CENTER);

JPanel jp4 = new JPanel();

jp4.add(jbOK);

jp4.add(jbCancel);

getContentPane().add(jp4, BorderLayout.SOUTH);

getContentPane().add(jp3, BorderLayout.CENTER);

jbOK.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

logOn.username = jtfUN.getText().trim();

logOn.password = new String(jtfPW.getPassword());

User user = new User();

user.doLogOn();

Administrator admin = new Administrator();

admin.doLogOn();

setVisible(false);

}

});

jbCancel.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

logOn = null;

setVisible(false);

}

});

}

}

class User{

public void doLogOn(){

int i, j;

String username;

String password;

String[] userUsernameArray = {"Ann Smyth", "John Murphy"};

String[] userPasswordArray = {"1", "2"};

for(i = 0; i < userUsernameArray.length(); i++){

if(username.equals(userUsernameArray[i])){

UserMainMenu umm = new UserMainMenu();

umm.setVisible(true);

}

else{

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

for(j = 0; j < userPasswordArray.length(); j++){

if(password.equals(userPasswordArray[j])){

UserMainMenu umm = new UserMainMenu();

umm.setVisible(true);

}

else{

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

}

}

class Administrator{

public void doLogOn(){

int k, l;

String username;

String password;

String[] adminUsernameArray = {"Administrator"};

String[] adminPasswordArray = {"0"};

for(k = 0; k < adminUsernameArray.length(); k++){

if(username.equals(adminUsernameArray[k])){

AdminMainMenu amm = new AdminMainMenu();

amm.setVisible(true);

}

else{

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

for(l = 0; l < adminPasswordArray.length(); l++){

if(password.equals(adminPasswordArray[l])){

AdminMainMenu amm = new AdminMainMenu();

amm.setVisible(true);

}

if(password != adminPasswordArray[l]){

JOptionPane.showMessageDialog(null, "Error\n\nYou have entered an incorrect username and/or password\nPlease try again", null, JOptionPane.ERROR_MESSAGE);

}

}

}

}

-jGRASP exec: javac -g E:\CP4B Project\LogOn.java

LogOn.java:48: cannot find symbol

symbol : variable username

location: class LogOn

logOn.username = jtfUN.getText().trim();

^

LogOn.java:49: cannot find symbol

symbol : variable password

location: class LogOn

logOn.password = new String(jtfPW.getPassword());

^

LogOn.java:75: cannot find symbol

symbol : method length()

location: class java.lang.String[]

for(i = 0; i < userUsernameArray.length(); i++){

^

LogOn.java:84: cannot find symbol

symbol : method length()

location: class java.lang.String[]

for(j = 0; j < userPasswordArray.length(); j++){

^

LogOn.java:104: cannot find symbol

symbol : method length()

location: class java.lang.String[]

for(k = 0; k < adminUsernameArray.length(); k++){

^

LogOn.java:113: cannot find symbol

symbol : method length()

location: class java.lang.String[]

for(l = 0; l < adminPasswordArray.length(); l++){

^

6 errors

-jGRASP wedge2: exit code for process is 1.

-jGRASP: operation complete.

james-mcfaddena at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 10

If you read each line it tells you what the errors are.....

> LogOn.java:48: cannot find symbol

> symbol : variable username

> location: class LogOn

> logOn.username = jtfUN.getText().trim();

>^

username is not defined in the LogOn class..

> .java:49: cannot find symbol

> symbol : variable password

> location: class LogOn

> logOn.password = new

> String(jtfPW.getPassword());

>^

Password is not defined in the LogOn class

> annot find symbol

> symbol : method length()

> location: class java.lang.String[]

> for(i = 0; i < userUsernameArray.length(); i++){

> ++){

>^

This is my fault I made a typo but TimTheEnchantor corrected it above use .length not .length()

> : method length()

> location: class java.lang.String[]

> for(j = 0; j < userPasswordArray.length(); j++){

> ++){

>^

> : method length()

> ocation: class java.lang.String[]

> for(k = 0; k < adminUsernameArray.length(); k++){

> ++){

> ^

> : method length()

> location: class java.lang.String[]

> for(l = 0; l < adminPasswordArray.length(); l++){

> ++){

> ^

> r process is 1.

> -jGRASP: operation complete.

ita6cgra at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 11
> i did what you suggested (extra classes, etc) and i> got 6 errors instead of 4 when i compiled the program> this time. what's the next step?Feel free to think for yourself at any time here.
petes1234a at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 12
> Feel free to think for yourself at any time here.I fear you may be asking a bit much here ;-)
Navy_Codera at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 13
Your code is messy and a bit all over the place did you try the tutorials?
ita6cgra at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 14
do you have links to any online tutorials that cover the use of arrays/strings with swing?
james-mcfaddena at 2007-7-12 23:12:56 > top of Java-index,Java Essentials,New To Java...
# 15

> do you have links to any online tutorials that cover

> the use of arrays/strings with swing?

You should keep your data separated from your GUI stuff.

Have a look at this Wiki page about this kind of pattern/technique:

http://en.wikipedia.org/wiki/Model-view-controller

Array tutorial:

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html

Swing tutorial:

http://java.sun.com/docs/books/tutorial/uiswing/TOC.html

prometheuzza at 2007-7-21 23:05:15 > top of Java-index,Java Essentials,New To Java...