Java: Displaying a 2D background


Displaying a 2D Background


Assumed Knowledge: basic knowledge of the Java language.
Information: This tutorial will teach you how to create a basic API and display an image.


What is an API..?
An application programming interface (API) is an interface implemented by a software program that enables it to interact with other software. It facilitates interaction between different software programs similar to the way the user interface facilitates interaction between humans and computers.

Creating the project


We need to create a new project through your IDE, I'm currently using Eclipse, which is available free  here., call the project what ever you like I'm going to call my "JavaAPI".

Posted Image

Setting the main class up

Now once you have created your project we will need to create a class, call it what ever you like I'm going to call it "Client", We don't want to package it so keep it blank.

Posted Image

Creating the API

In your main class we will need to add some important imports and create a constructor.

import javax.swing.*;

Swing is the primary Java GUI widget toolkit. It is part of Sun Microsystems' Java Foundation Classes (JFC), an API for providing a graphical user interface (GUI) for Java programs.

 public static void main(String[] args) {


}


Now we can add our main code


  JFrame frame = new JFrame("Application");



frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


frame.setSize(500, 500);

frame.setResizable(false);



frame.setVisible(true);


To the explaining of the code, 

The 1st line (JFrame frame = new JFrame("Application");)  creates the frame.

The
3rd line (frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);) allows the application to exit once it has been closed.


The 5th and 6th line is pretty self-explanatory...

and The 8th line display the window to the user.

Creating the second class

Same as before we need to create a new class, I'm going to call mine "Board".

Posted Image

Setting the second class up

And once again same as before, we need to add some imports, create a constructor and extend the JPanel.

The Abstract Window Toolkit (AWT) is Java's original platform-independent windowing, graphics, and user-interface widget toolkit. The AWT is now part of the Java Foundation Classes (JFC), the standard API for providing a graphical user interface (GUI) for a Java program.

import java.awt.*;

import javax.swing.*;

public class Board extends JPanel {


public Board() {


}


}

Displaying the Image

Before any image will be displayed we need to declare the Image.

 Image BGTexture;

In the constructor, we will need to add the file the image will display.

  ImageIcon ii = new ImageIcon("yourImage.png");

BGTexture = ii.getImage();


An implementation of the Icon interface that paints Icons from Images. Images that are created from a URL or filename are preloaded using MediaTracker to monitor the loaded state of the image.

We will now need to create a method that will load the image.

 public void paint(Graphics g) {


}

In-side that method we can add loads of different things to display anything graphical, whether it be an image from your computer, or generated through code.

  g.drawImage(BGTexture, 0, 0, null);

Notice that the Image we declared at the start was "BGTexture", that will be used through-out this class by displaying it, the ", 0, 0" represent coordinates (X, Y).

now that is all done there is one more tihng to do, we need to go back into our main class (Client.java) and add the this class (Board.java)

  frame.add(new Board());

Posted Image

Final Code:

Client.java
import javax.swing.*;


public class Client {


public static void main(String[] args) {

JFrame frame = new JFrame("Application");



frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



frame.add(new Board());



frame.setSize(500, 500);

frame.setResizable(false);



frame.setVisible(true);

}



}


Board.java
import java.awt.*;

import javax.swing.*;


public class Board extends JPanel {


Image BGTexture;



public Board() {

ImageIcon ii = new ImageIcon("yourImage.png");

BGTexture = ii.getImage();

}



public void paint(Graphics g) {

g.drawImage(BGTexture, 0, 0, null);

}



}


No comments:

Post a Comment