473,473 Members | 2,226 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Pls help with a project. About doing passwords. Thanks

35 New Member
Hi i have this project were i have to do a quiz. i wrote the questions in a textfile and i called them through java. I have also made a menu to choose which type of quiz. But before accessing the quiz i have to do a password and a login. I managed to do the password but when i tried to join this to the whole program its not working. This is the main program:

import java.util.*;
import java.io.*;
import java.util.Scanner;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;

public class GeographyQuiz_Menu
{
public static void main (String args[])
{
String yourChoice;
char choice;
int i, choice1;


Scanner keyboard = new Scanner(System.in);
i = 0;
while (i<=6)
{
// Input Menu
System.out.println(" ");
System.out.println("Welcome!");
System.out.println("This is a Geography Quiz");
System.out.println("Choose from the following Menu:");
System.out.println("1. Plate Tectonics");
System.out.println("2. Rivers");
System.out.println("3. Rocks");
System.out.println("4. Quit");
System.out.print("Please enter your choice: ");

yourChoice = keyboard.next(); // Enter choice

System.out.println(" ");



// Validate Choice
choice1=Integer.parseInt(yourChoice); // Convert variable from string to integer
if(choice1<1 || choice1>4)
{
System.out.println("This is an invalid choice");
}
switch(choice1)
{
case 1: System.out.println("You are taking the Plate Tectonics Quiz");
Scanner s = null;
try {
s = new Scanner(new BufferedReader(new FileReader("plate_tectonics.txt")));

while (s.hasNext()) {
s.useDelimiter(",\\s*");
System.out.println(s.next());
}
} finally {
if (s != null)
s.close();

break;
}
case 2: System.out.println("You are taking the River Quiz");

Scanner b = null;
try {
b = new Scanner(new BufferedReader(new FileReader("rivers.txt")));

while (b.hasNext()) {
b.useDelimiter(",\\b*");
System.out.println(b.next());
}
} finally {
if (b != null) {
b.close();
}

break;
}


case 3: System.out.println("You are taking the Rocks Quiz");
Scanner c = null;
try {
c = new Scanner(new BufferedReader(new FileReader("rocks.txt")));

while (c.hasNext()) {
c.useDelimiter(",\\c*");
System.out.println(c.next());
}
} finally {
if (c != null) {
c.close();
}

break;
}


}
}
}
}

And this is the part where it does the login password.


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;

/* PasswordDemo.java requires no other files. */

public class PasswordDemo extends JPanel
implements ActionListener {
private static String OK = "ok";
private static String HELP = "help";

private JFrame controllingFrame; //needed for dialogs
private JPasswordField passwordField;

public PasswordDemo(JFrame f) {
//Use the default FlowLayout.
controllingFrame = f;

//Create everything.
passwordField = new JPasswordField(10);
passwordField.setActionCommand(OK);
passwordField.addActionListener(this);

JLabel label = new JLabel("Enter the password: ");
label.setLabelFor(passwordField);

JComponent buttonPane = createButtonPanel();

//Lay out everything.
JPanel textPane = new JPanel(new FlowLayout(FlowLayout.TRAILING));
textPane.add(label);
textPane.add(passwordField);

add(textPane);
add(buttonPane);
}

protected JComponent createButtonPanel() {
JPanel p = new JPanel(new GridLayout(0,1));
JButton okButton = new JButton("OK");
JButton helpButton = new JButton("Help");

okButton.setActionCommand(OK);
helpButton.setActionCommand(HELP);
okButton.addActionListener(this);
helpButton.addActionListener(this);

p.add(okButton);
p.add(helpButton);

return p;
}

public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();

if (OK.equals(cmd)) { //Process the password.
char[] input = passwordField.getPassword();
if (isPasswordCorrect(input)) {
JOptionPane.showMessageDialog(controllingFrame,
"Success! You typed the right password.");
} else {
JOptionPane.showMessageDialog(controllingFrame,
"Invalid password. Try again.",
"Error Message",
JOptionPane.ERROR_MESSAGE);
}

//Zero out the possible password, for security.
Arrays.fill(input, '0');

passwordField.selectAll();
resetFocus();
} else { //The user has asked for help.
JOptionPane.showMessageDialog(controllingFrame,
"Ask the teacher for the password");
}
}

/**
* Checks the passed-in array against the correct password.
* After this method returns, you should invoke eraseArray
* on the passed-in array.
*/
private static boolean isPasswordCorrect(char[] input) {
boolean isCorrect = true;
char[] correctPassword = { 'g', 'e', 'o' };

if (input.length != correctPassword.length) {
isCorrect = false;
} else {
isCorrect = Arrays.equals (input, correctPassword);
}

//Zero out the password.
Arrays.fill(correctPassword,'0');

return isCorrect;
}

//Must be called from the event dispatch thread.
protected void resetFocus() {
passwordField.requestFocusInWindow();
}

/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event dispatch thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("PasswordDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);

//Create and set up the content pane.
final PasswordDemo newContentPane = new PasswordDemo(frame);
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);

//Make sure the focus goes to the right component
//whenever the frame is initially given the focus.
frame.addWindowListener(new WindowAdapter() {
public void windowActivated(WindowEvent e) {
newContentPane.resetFocus();
}
});

//Display the window.
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event dispatch thread:
//creating and showing this application's GUI.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//Turn off metal's use of bold fonts
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}
}

Can someone pls tell me how to join them to make them work in the correct way. Thanks a lot.
Dec 14 '07 #1
5 2136
BigDaddyLH
1,216 Recognized Expert Top Contributor
I think you need to rewrite your game code. A program should have only one main method, and even if you managed to glue these two classes together, going from a Swing GUI to enter a password to a console-based game is awkward, clunky.
Dec 14 '07 #2
saytri
35 New Member
I think you need to rewrite your game code. A program should have only one main method, and even if you managed to glue these two classes together, going from a Swing GUI to enter a password to a console-based game is awkward, clunky.
Thanks for your reply. But how do you call a class from the main class? I'm a bit new in java (still a student:- first year to java) Thanks a lot.
Dec 14 '07 #3
BigDaddyLH
1,216 Recognized Expert Top Contributor
Thanks for your reply. But how do you call a class from the main class? I'm a bit new in java (still a student:- first year to java) Thanks a lot.
There's no "main class" in Java. I think you are asking how classes can be used together. You already know how. Look at your class PasswordDemo. It is using the classes String, JPanel, JFrame, JPasswordField, JLabel, FlowLayout, JButton, JOptionPane, Arrays, UIManager, SwingUtilities.
Dec 14 '07 #4
saytri
35 New Member
Thanks. But since i'm very new to Java, the part where it outputs the password, i haven't written it. I found it in the Internet. My problem is how to call the PasswordDemo class from the Geography_menu class. Because in the output i have to display first the part of the login password, and then if the user types it correctly it would display the menu(i.e the geography menu class). Pls help me do that command part because i'm really stuck.

Thanks a lot for being helpful.
Dec 15 '07 #5
neuro11
3 New Member
Do u hav java book or tutorial or java doc?? if not, u should collect those first..because as a new to java u hav to first know the very basic things..before going for solving problems.Without asking so many times u should learn things first Codin will b just a matter of time then......

wish u good luck
Dec 16 '07 #6

Sign in to post your reply or Sign up for a free account.

Similar topics

9
by: Penn Markham | last post by:
Hello all, I am writing a script where I need to use the system() function to call htpasswd. I can do this just fine on the command line...works great (see attached file, test.php). When my...
8
by: Joshua Beall | last post by:
Hi All, Up until now I have been storing passwords in the database as an sha1 hash. I like doing it this way, but a problem arises with people who forget their passwords - I cannot retrieve it...
7
by: dogu | last post by:
I'm running Mandrake 10 PHP 4x Apache 2x The code below resides in /home/doug/public_html Apache is configured to allow user home drives and I can successfully load html. If I'm running...
10
by: Mark H | last post by:
Hey all-- I'm building a database and I basically need to keep out people who aren't authorized, but it's not like I need top security here. I'm just doing basic user/pass of a SQL database, and...
0
by: LRW | last post by:
I manage our mySQL database through putty (SSH terminal client). And whenever I do a select * from the table that contains ENCODEd passwords, the funky characters do funky things with the display....
4
by: LRW | last post by:
I'm sorry, I don't know if this is a mySQL issue, or a Putty error, or what. So if there's a better newsgroup for this question, please let me know. I'm using Putty to SSH into our remote Linux...
2
by: Martin Høst Normark | last post by:
Hi everyone Has anyone got the least experience in integrating the Digital Signature with an ASP.NET Web Application? Here in Denmark, as I supose in many other countries, they're promoting...
1
patjones
by: patjones | last post by:
Good Evening: So, I wanted to learn a little about user accounts, because on of my databases has been put on a network drive, and I have a need to know who is entering what data into the...
0
JamieHowarth0
by: JamieHowarth0 | last post by:
I have been trying to find a solution to this on the Internet for months. Literally, ages and ages and ages, praying that someone in the open-source community has enough knowledge to put together an...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
1
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.