A better looking GUI

This is the fourth of a few tutorials that will show you how to create graphical user interfaces using java.

Prerequisites

This tutorial is moderately difficult. If you know the Java basics please refer to my previous tutorials. If you do know the Java basics you should be familiar with my previous tutorials on GUI’s.

The Idea

In order for your program to be attractive, the user must be able to easily navigate through your program. By creating a GUI the user is presented with all the features of the program in a clear and coherent manner. Adding buttons to your interface allow for user interaction which is the reason for a GUI.

Solution

Although the idea introduced in the tutorial isn’t very big and doesn’t deserve to be its own tutorial, I changed the basic code we have been using so I felt it was worth while to point out a different method to create a window. It uses basic ideas I’ve explained in previous tutorials, but since this is how I will be creating most of my windows from now on, you should observe the changes and try to understand them.

This code does the exact same thing on the outside as a pervious tutorial I made, but there are significant changes. Lets take a look at the code:
[code lang="java"] package cctuts;

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

public class InterfaceFour implements ActionListener {
JFrame interfaceFrame;
JButton startButton;

public InterfaceFour() {
interfaceFrame = new JFrame("First GUI");
interfaceFrame.setSize(200,70);
interfaceFrame.setVisible(true);

startButton = new JButton("Start");
startButton.addActionListener(this);
interfaceFrame.add(startButton);

interfaceFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
interfaceFrame.setVisible(true);
}

public void actionPerformed(ActionEvent a) {
for(int i = 0; true; i++){
System.out.println(i);
}
}

public static void main(String[] args) {
new InterfaceFour();
}
}[/code]

As you see, rather than extending JFrame I’ve made an object called interfaceFrame. Essentially the code is exactly the same, but all the JFrame methods you want to use have to be called on the specific object, on our case interfaceFrame, and you do that by using the period. If you noticed, JFrame() accepts a string parameter where you can add the title of the application; I named it “First GUI.” Moreover I defined the object types as instance variables so they can be referenced in other parts of the code.

The other tidbit I wanted to point out in this tutorial is you can make your program “look” better by setting the default look and feel by adding this code
[code lang="java"] JFrame.setDefaultLookAndFeelDecorated(true);[/code]

This final code is important to understand because my future tutorials will be more complex and feed off this idea.

[code lang="java"] package cctuts;

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

public class InterfaceFour implements ActionListener {
JFrame interfaceFrame;
JButton startButton;

public InterfaceFour() {
JFrame.setDefaultLookAndFeelDecorated(true);
interfaceFrame = new JFrame("First GUI");
interfaceFrame.setSize(200,70);
interfaceFrame.setVisible(true);

startButton = new JButton("Start");
startButton.addActionListener(this);
interfaceFrame.add(startButton);

interfaceFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
interfaceFrame.setVisible(true);
}

public void actionPerformed(ActionEvent a) {
for(int i = 0; true; i++){
System.out.println(i);
}
}

public static void main(String[] args) {
new InterfaceFour();
}
}[/code]

Image:

Related posts:

  1. MouseListener Any program that actually does something is event driven. With out events, your program is entirely static and probably does...
  2. Java – Hello World Object: To build your very first Java App The Idea: Like every first tutorial, this tutorial will show you how...
  3. HTML with Swing Components One useful feature of Swing GUI’s many people overlook is the ability to use simple HTML tags within swing components....
  4. The JApplet All of my tutorials thus far have been using JFrame to create windows. However, Java also supports the Applet, this...
  5. Using Paint One of the most popular things Java is used for is to make online games. While making 3d games is...

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.