A Simple Introductory Java Program
To copy this program into BlueJ, please do the following:
- Start BlueJ
- Create a new, empty project
Name the project anything you wish, but you must start with a letter, and no spaces.
- Create a new "class" in your project
- Make sure to name that class '"Junk", including the capitalization - you have no choice here, "Junk" is it!
- Open that class and erase everything
- Copy everything below the line --- COPY HERE --- into the "Junk" class
- Compile everything
If you made no errors, the class should compile without problems and you are ready to run/execute the program.
------------------------ COPY HERE (below this point) ---------------------------
/*
* This is the program we discussed in class, but I added some commments to it.
* Comments are enclosed in "slash-star to star-slash" symbols and are simply
* ignored by the compiler.
*/
/*
* First, we have some 'import' statement to import those classes we will need in
* our program. You can use a "star" to import all classes in a group, or
* package, which is convenient sometimes, or import specifically named classes
* only, which is more efficient for the compiler.
*/
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.*;
/*
* Next comes the basic name of the 'public class'. It usually starts with a
* capital letter and can not include any spaces. In our case we define a new
* class called 'Junk' that extends, or "is a", JFrame, and implements, or
* "acts as" an ActionListener. Virtually every Java program starts out like
* this.
*/
public class Junk extends JFrame implements ActionListener
{
/*
* Next come the fieldds, used to store things. Everything that a class
* "has" should be defined in fields at the top of the class. In our case
* the class - aka program - has two buttons and one text field, properly
* initialized according to the Java API.
*/
JButton button1 = new JButton("Click me");
JButton button2 = new JButton("No, me!");
JTextField display = new JTextField("Some text goes here");
/*
* Next comes the 'constructor', i.e. a method that has the same name as
* the class name. This is where all initialization and layout code goes.
*/
public Junk()
{
super("My First Program");
/*
* As our layout we define a 'FlowLayout', which means that everything
* is going to be arranged in a row.
*/
getContentPane().setLayout(new FlowLayout());
/*
* Now we add the various GUI elements.
*/
getContentPane().add(button1);
getContentPane().add(button2);
getContentPane().add(display);
/*
* We activate the buttons via the 'addActionListener' command.
*/
button1.addActionListener(this);
button2.addActionListener(this);
/*
* Finally we define the window size and make the window visible.
*/
setSize(400, 400);
setVisible(true);
}
/*
* The next method is called when an activated button is clicked. In it
* we decide what is actually supposed to happen when a button is clicked.
* The 'if' statement inside this method allows us to react differently
* depending on which button was clicked.
*/
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == button1)
display.setText("it tickles ..");
else if (e.getSource() == button2)
display.setText("ohh, stop ...");
}
/*
* Last is the 'main' method. Every Java program must have one such
* method, which is usually short and creates an object of the current
* type, passing execution to the constructor.
*/
public static void main(String args[])
{
Junk j = new Junk();
}
}