Thursday, October 21, 2010

Draft Board Interface By Benjamin Sam Mkandawire


DRAFT BOARD INTERFACE
Introduction
The main object of this java program was to come up with a Draft Board Interface (DBI). The program has been written using java language, which is an Object Oriented Programming language (OOP). The term Object-Oriented Programming (OOP) means many different things. But at its heart, object-oriented programming is a type of computer programming based on the premise that all programs are essentially computer-based simulations of real-world objects or abstract concepts.
Attributes
The interface includes the name, board itself as an attribute and also bottle tops. This is just the usual draft game which most of us know.
SNAPSHOT 
Only a single snap shot of the game has been captured for the viewers to see as shown below: 


CONCLUSION

In conclusion, the major objective of the project was to develop a draft board interface (using Java Programming Language, OOP). Thus a draft board is a game that most usually plays. As of now, the draft board does nothing like moving a bottle top to a certain point. But however, as time goes the interface will be modified to include more attributes like moving so that people can be able to play. Again this shall be done by using the same programming language.




Draft Board Souce Code By Benjamin Sam Mkandawire

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.awt.Color;


public class DraftBen{

public static void main(String[] args)
{
DrawFrame frame = new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}

}

class DrawFrame extends JFrame
{

public DrawFrame()
{
setSize(700, 725);
setLocationRelativeTo(null);
setResizable(true);
setTitle("DRAFT BOARD BY-------BENJAMIN SAM MKANDAWIRE--------.................2010");


;

DrawPanel panel = new DrawPanel();

Container contentPane = getContentPane();

contentPane.add(panel);
}

}



class DrawPanel extends JPanel
{
ImageIcon picIcon = new ImageIcon("ben1.png");
Image picImage = picIcon.getImage();

ImageIcon picIcon2 = new ImageIcon("sam1.png");
Image picImage2 = picIcon2.getImage();

public void paintComponent(Graphics g)
{
DrawFrame frame = new DrawFrame();
int start1=0;
int start2=0;
int x=start1;
int y=start2;
int numberOfbox=8;
int sizeOfbox=86;
boolean paint=false;

super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
for(int a=0;a
{
if(a%2==0)
{paint=false;}
else if(a%2==1)
{paint=true;}
x=start1;
for(int b=0;b
{
if(paint==true)
{
g2.setPaint(Color.green);
g2.fill(new Rectangle2D.Double(x,y,sizeOfbox,sizeOfbox));

//line number one
g2.drawImage(picImage, 0, 0, this);
g2.drawImage(picImage, 175, 0, this);
g2.drawImage(picImage, 350, 0, this);
g2.drawImage(picImage, 520, 0, this);

//line number two
g2.drawImage(picImage, 90, 90, this);
g2.drawImage(picImage, 265, 90, this);
g2.drawImage(picImage, 435, 90, this);
g2.drawImage(picImage, 605, 90, this);

//line number three
g2.drawImage(picImage, 0,180, this);
g2.drawImage(picImage, 175,180, this);
g2.drawImage(picImage, 350,180, this);
g2.drawImage(picImage, 520,180, this);

paint=false;
}
else
{
g2.setPaint(Color.yellow);
g2.fill(new Rectangle2D.Double(x,y,sizeOfbox,sizeOfbox));
//line number one back
g2.drawImage(picImage2, 0, 520, this);
g2.drawImage(picImage2, 175,520, this);
g2.drawImage(picImage2, 520,520, this);
g2.drawImage(picImage2, 350,520, this);

//line number two front
g2.drawImage(picImage2, 605, 605, this);
g2.drawImage(picImage2, 95, 605, this);
g2.drawImage(picImage2, 435, 605, this);
g2.drawImage(picImage2, 265, 605, this);

//line number three far front
g2.drawImage(picImage2, 440,435, this);
g2.drawImage(picImage2, 260,435, this);
g2.drawImage(picImage2, 90,435, this);
g2.drawImage(picImage2, 600,435, this);


paint=true;
}
x+=sizeOfbox;
}
y+=sizeOfbox;
}
}
}




Below are the images for the code above:


Sunday, October 10, 2010

Source Code - Weather Capture System Interface

// Main Class which displays the first Window


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

public class Main extends JFrame
{
private JLabel intoLbl;
private JButton enterBtn;
private JButton exitBtn;
private JPanel contentPane;

public Font font = new Font("Algerian", Font.BOLD, 24);

public Main()
{
super();
initializeComponent();

this.setVisible(true);
}

private void initializeComponent()
{
intoLbl = new JLabel();
enterBtn = new JButton();
exitBtn = new JButton();
contentPane = (JPanel)this.getContentPane();

intoLbl.setFont(font);
enterBtn.setFont(font);
enterBtn.setBackground(Color.GREEN);
exitBtn.setFont(font);

intoLbl.setText("BEN SAM WEATHER STATION");

enterBtn.setText("CAPTURE FORECAST");
enterBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
new CaptureFrame();
}

});

exitBtn.setText("EXIT");
exitBtn.setBackground(Color.WHITE);
exitBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}

});

contentPane.setLayout(null);
contentPane.setBackground(Color.WHITE);
addComponent(contentPane, intoLbl, 170,10,400,15);
addComponent(contentPane, enterBtn, 0,30,729,406);
addComponent(contentPane, exitBtn, 0,436,729,28);

this.setTitle("WEATHER CAPTURE SYSTEM");
this.setLocation(new Point(300, 100));
this.setSize(new Dimension(729, 496));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void addComponent(Container container,Component c,int x,int y,int width,int height)
{
c.setBounds(x,y,width,height);
container.add(c);
}

public static void main(String[] args)
{
new Main();
}
}








//CaptureFrame Class - Displays the input window, which prompts the analyst to capture the focust

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

public class CaptureFrame extends JFrame
{
private JButton sbtBtn;
private JButton extBtn;
private JButton clrBtn;
private JButton viewBtn;
private JPanel contentPane;

public CaptureFrame()
{
super();
initializeComponent();
this.setVisible(true);
}

private void initializeComponent()
{
sbtBtn = new JButton();
extBtn = new JButton();
clrBtn = new JButton();
viewBtn = new JButton();
contentPane = (JPanel)this.getContentPane();

sbtBtn.setText("Submit");
sbtBtn.setToolTipText("Press This Button To Save");
sbtBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
new Submit();
}
});

extBtn.setText("Exit");
extBtn.setToolTipText("Press The Button To Exit");
extBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});

clrBtn.setText("Clear");
clrBtn.setToolTipText("Press To Clear");
clrBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
new ClearCommand();
}
});

viewBtn.setText("View Weather");
viewBtn.setToolTipText("Press The Button To View The Entries");
viewBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
new ViewCommand();
}
});

contentPane.setLayout(null);
contentPane.setBackground(new Color(5, 250, 10));

addComponent(contentPane, new InputPanel(), 0,0,400,620);
addComponent(contentPane, sbtBtn, 35,620,83,28);
addComponent(contentPane, extBtn, 35,650,83,28);
addComponent(contentPane, clrBtn, 135,635,83,28);
addComponent(contentPane, viewBtn, 235,635,115,26);

this.setTitle("WEATHER CAPTURE SYSTEM");
this.setLocation(new Point(300, 0));
this.setSize(new Dimension(400, 720));
}

private void addComponent(Container container,Component c,int x,int y,int width,int height)
{
c.setBounds(x,y,width,height);
container.add(c);
}
}







//InputPanel Class-the panel that contains labels and textfields for input. This panel is displayed by CaptureFrame

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

public class InputPanel extends JPanel {
public static JTextField date, chichTemp, chichHum, chichRain, mimTemp, mimHum, mimRain;
public static JTextField bundaTemp, bundaHum, bundaRain, kiaTemp, kiaHum, kiaRain, mzuTemp, mzuHum, mzuRain;

public InputPanel()
{
setBackground(Color.green);
setLayout(new GridBagLayout());

//DATE
JLabel dateLbl = new JLabel ("Date");
date = new JTextField(10);
dateLbl.setFont(new Font("algerian",Font.BOLD,20));

addItem(this, dateLbl, 0, 0, 1, 1, GridBagConstraints.WEST);
addItem(this, date, 0, 0, 1, 1, GridBagConstraints.CENTER);

//CHICHIRI
JLabel chichLbl = new JLabel ("Chichiri");
chichLbl.setFont(new Font("algerian",Font.BOLD,20));

JLabel chichHumidLbl = new JLabel ("Humidity");
JLabel chichTempLbl = new JLabel ("Temperature");
JLabel chichRainLbl = new JLabel ("Rainfall");

chichHum = new JTextField(10);
chichTemp = new JTextField(10);
chichRain = new JTextField(10);

addItem(this, chichLbl, 0, 2, 1, 1, GridBagConstraints.WEST);
addItem(this, chichHumidLbl, 0, 2, 1, 1, GridBagConstraints.CENTER);
addItem(this, chichHum, 0, 2, 1, 1, GridBagConstraints.EAST);
addItem(this, chichTempLbl, 0, 3, 1, 1, GridBagConstraints.CENTER);
addItem(this, chichRainLbl, 0, 4, 1, 1, GridBagConstraints.CENTER);
addItem(this, chichTemp, 0, 3, 1, 1, GridBagConstraints.EAST);
addItem(this, chichRain, 0, 4, 1, 1, GridBagConstraints.EAST);

//MIMOSA
JLabel mimLbl = new JLabel ("Mimosa");
mimLbl.setFont(new Font("algerian",Font.BOLD,20));

JLabel mimHumidLbl = new JLabel ("Humidity");
JLabel mimTempLbl = new JLabel ("Temperature");
JLabel mimRainLbl = new JLabel ("Rainfall");

mimHum = new JTextField(10);
mimTemp = new JTextField(10);
mimRain = new JTextField(10);

addItem(this, mimLbl, 0, 6, 1, 1, GridBagConstraints.WEST);
addItem(this, mimHumidLbl, 0, 6, 1, 1, GridBagConstraints.CENTER);
addItem(this, mimHum, 0, 6, 1, 1, GridBagConstraints.EAST);
addItem(this, mimTempLbl, 0, 7, 1, 1, GridBagConstraints.CENTER);
addItem(this, mimRainLbl, 0, 8, 1, 1, GridBagConstraints.CENTER);
addItem(this, mimTemp, 0, 7, 1, 1, GridBagConstraints.EAST);
addItem(this, mimRain, 0, 8, 1, 1, GridBagConstraints.EAST);

//BUNDA
JLabel bundaLbl = new JLabel ("Bunda");
bundaLbl.setFont(new Font("algerian",Font.BOLD,20));

JLabel bundaHumidLbl = new JLabel ("Humidity");
JLabel bundaTempLbl = new JLabel ("Temperature");
JLabel bundaRainLbl = new JLabel ("Rainfall");

bundaHum = new JTextField(10);
bundaTemp = new JTextField(10);
bundaRain = new JTextField(10);

addItem(this, bundaLbl, 0, 10, 1, 1, GridBagConstraints.WEST);
addItem(this, bundaHumidLbl, 0, 10, 1, 1, GridBagConstraints.CENTER);
addItem(this, bundaHum, 0, 10, 1, 1, GridBagConstraints.EAST);
addItem(this, bundaTempLbl, 0, 11, 1, 1, GridBagConstraints.CENTER);
addItem(this, bundaRainLbl, 0, 12, 1, 1, GridBagConstraints.CENTER);
addItem(this, bundaTemp, 0, 11, 1, 1, GridBagConstraints.EAST);
addItem(this, bundaRain, 0, 12, 1, 1, GridBagConstraints.EAST);

//KIA
JLabel kiaLbl = new JLabel ("KIA");
kiaLbl.setFont(new Font("algerian",Font.BOLD,20));

JLabel kiaHumidLbl = new JLabel ("Humidity");
JLabel kiaTempLbl = new JLabel ("Temperature");
JLabel kiaRainLbl = new JLabel ("Rainfall");

kiaHum = new JTextField(10);
kiaTemp = new JTextField(10);
kiaRain = new JTextField(10);

addItem(this, kiaLbl, 0, 14, 1, 1, GridBagConstraints.WEST);
addItem(this, kiaHumidLbl, 0, 14, 1, 1, GridBagConstraints.CENTER);
addItem(this, kiaHum, 0, 14, 1, 1, GridBagConstraints.EAST);
addItem(this, kiaTempLbl, 0, 15, 1, 1, GridBagConstraints.CENTER);
addItem(this, kiaRainLbl, 0, 16, 1, 1, GridBagConstraints.CENTER);
addItem(this, kiaTemp, 0, 15, 1, 1, GridBagConstraints.EAST);
addItem(this, kiaRain, 0, 16, 1, 1, GridBagConstraints.EAST);

//MZUNI
JLabel mzuLbl = new JLabel ("MZUNI");
mzuLbl.setFont(new Font("algerian",Font.BOLD,20));

JLabel mzuHumidLbl = new JLabel ("Humidity");
JLabel mzuTempLbl = new JLabel ("Temperature");
JLabel mzuRainLbl = new JLabel ("Rainfall");

mzuHum = new JTextField(10);
mzuTemp = new JTextField(10);
mzuRain = new JTextField(10);

addItem(this, mzuLbl, 0, 18, 1, 1, GridBagConstraints.WEST);
addItem(this, mzuHumidLbl, 0, 18, 1, 1, GridBagConstraints.CENTER);
addItem(this, mzuHum, 0, 18, 1, 1, GridBagConstraints.EAST);
addItem(this, mzuTempLbl, 0, 19, 1, 1, GridBagConstraints.CENTER);
addItem(this, mzuRainLbl, 0, 20, 1, 1, GridBagConstraints.CENTER);
addItem(this, mzuTemp, 0, 19, 1, 1, GridBagConstraints.EAST);
addItem(this, mzuRain, 0, 20, 1, 1, GridBagConstraints.EAST);

}

private static void addItem(JPanel p, JComponent c,int x, int y, int width, int height, int align)
{
GridBagConstraints gridBag = new GridBagConstraints();
gridBag.gridx = x;
gridBag.gridy = y;
gridBag.gridwidth = width;
gridBag.gridheight = height;
gridBag.weightx = 10;
gridBag.weighty = 10;
gridBag.insets = new Insets(8, 8, 5, 0);
gridBag.anchor = align;
gridBag.fill = GridBagConstraints.NONE;
p.add(c, gridBag);
}
}




//Submit Class - Displays the save dialogue box




import javax.swing.*;

public class Submit {
public Submit() {
ViewCommand viewCommand = new ViewCommand("No Frame Display");
String data = viewCommand.myArea.getText();
String[] lines = data.split("\n");
//System.out.print(data);

JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showSaveDialog(null);
if(result == JFileChooser.APPROVE_OPTION)
{
File file;
String fileName = fileChooser.getSelectedFile().getName();
file = new File(fileName + ".txt");
if (file.exists())
{
JOptionPane.showMessageDialog(null, "File already exists");
}
else try
{
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw, true);
for(int i = 0; i < 26; i++) {
out.println(lines[i]);
}
out.flush();
out.close();
}
catch(IOException exp){}
}
}
}





//ViewCommand Class - Displays the preview of the forecast



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

public class ViewCommand {
final JFrame viewFrame= new JFrame();
JPanel myPanel = new JPanel ();
JTextArea myArea = new JTextArea(18,25);

public ViewCommand() {
this(null);
}

public ViewCommand(String print) {
display();
setViewFrame();
if (print == null) {
viewFrame.setVisible(true);
}
else {
viewFrame.setVisible(false);
}
}

public void setViewFrame() {
viewFrame.setTitle("WEATHER FORECAST");

JButton okBtn = new JButton("Ok");
okBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
viewFrame.setVisible(false);
}
});

myPanel.add(myArea, BorderLayout.CENTER);
myPanel.add(okBtn, BorderLayout.SOUTH);
viewFrame.setLocation(700,50);
viewFrame.setResizable(false);
viewFrame.pack();
}

public void display() {
myPanel.setLayout(new BorderLayout(2,2));

viewFrame.setContentPane(myPanel);

myArea.append(" DATE: "+ InputPanel.date.getText()+"\n\n");

myArea.append("********************CHCHIRI**********************"+"\n");
myArea.append("HUMIDITY: "+ InputPanel.chichHum.getText()+"\n");
myArea.append("TEMPERATURE: "+ InputPanel.chichTemp.getText()+"\n");
myArea.append("RAINFALL: "+ InputPanel.chichRain.getText()+"\n\n");

myArea.append("*******************MIMOSA***********************"+"\n");
myArea.append("HUMIDITY: "+ InputPanel.mimHum.getText() + "\n");
myArea.append("TEMPERATURE: "+ InputPanel.mimTemp.getText()+"\n");
myArea.append("RAINFALL: "+ InputPanel.mimRain.getText()+"\n\n");

myArea.append("*********************BUNDA***********************"+"\n");
myArea.append("HUMIDITY:"+ InputPanel.bundaHum.getText()+"\n");
myArea.append("TEMPERATURE: "+ InputPanel.bundaTemp.getText()+"\n");
myArea.append("RAINFALL: "+ InputPanel.bundaRain.getText()+"\n\n");

myArea.append("*************************KIA************************"+"\n");
myArea.append("HUMIDITY: "+ InputPanel.kiaHum.getText()+"\n");
myArea.append("TEMPERATURE: "+ InputPanel.kiaTemp.getText()+"\n");
myArea.append("RAINFALL: "+ InputPanel.kiaRain.getText()+"\n\n");

myArea.append("***********************MZUNI**********************"+"\n");
myArea.append("HUMIDITY: "+ InputPanel.mzuHum.getText()+"\n");
myArea.append("TEMPERATURE: "+ InputPanel.mzuTemp.getText()+"\n");
myArea.append("RAINFALL: "+ InputPanel.mzuRain.getText());

myArea.setEditable(false);
myArea.setFont(new Font("algerian",Font.BOLD,15));
myArea.setBackground(Color.green);
}
}





//ClearCommand Class - Clears the textfields


import javax.swing.JOptionPane;

public class ClearCommand {
public ClearCommand() {
String blank = new String("");

InputPanel.date.setText(blank);
InputPanel.chichTemp.setText(blank);
InputPanel.chichHum.setText(blank);
InputPanel.chichRain.setText(blank);
InputPanel.mimTemp.setText(blank);
InputPanel.mimHum.setText(blank);
InputPanel.mimRain.setText(blank);
InputPanel.bundaTemp.setText(blank);
InputPanel.bundaHum.setText(blank);
InputPanel.bundaRain.setText(blank);
InputPanel.kiaTemp.setText(blank);
InputPanel.kiaHum.setText(blank);
InputPanel.kiaRain.setText(blank);
InputPanel.mzuTemp.setText(blank);
InputPanel.mzuHum.setText(blank);
InputPanel.mzuRain.setText(blank);

JOptionPane.showMessageDialog(null, "YOUR FORECASTS HAS BEEN CLEARED");
}
}

Saturday, October 9, 2010

Weather Capture System Interface


The Malawi Polytechnic


Computing and Statistics Department


DEVELOPING A WEATHER CAPTURE SYSTEM INTERFACE
(Using Java Programming Language)

PRESENTED TO:
Mr. B. Kankuzi



Benjamin Sam Mkandawire (MSE/06/PE/0020)




OCTOBER 2010

WEATHER CAPTURE SYSTEM INTERFACE
INTRODUCTION
The main object of this java program was to come up with a Weather Capture System Interface (WCSY) used in weather stations to capture the weather forecast. The program has been written using java language, which is an Object Oriented Programming language (OOP). The term Object-Oriented Programming (OOP) means many different things. But at its heart, object-oriented programming is a type of computer programming based on the premise that all programs are essentially computer-based simulations of real-world objects or abstract concepts. For instance, Business programs can be thought of as simulations of business processes-such as order taking, customer service, shipping, and billing. An invoice isn't just a piece of paper; it's a paper that represents a transaction that has occurred between a company and one of its customers. Thus a computer-based invoice is really just a simulation of that transaction.

As a consequence, I have developed a simple java interface which captures weather forecasts in five different areas namely: Chichiri, Mimosa, Bunda College, Kamuzu International Airport and Mzuzu University. This interface captures humidity, temperature and rainfall.

ATTRIBUTES
The interface includes the name of the weather station, as an attribute and also a button labeled capture forecast. Once the analyst clicks on the button, and then appears a full window which displays the areas to be forecast and some types of weather that can be captured. In addition, the weather station contains the fields which demand the weather analyst to fill the date of forecast, to fill the day’s weather and then display the forecast for the public to view.
The analyst enters the required forecasts, and then after doing that, he/she is then able to display the weather forecast that has been forecast, so that the public are able to view the day’s weather forecast. This is done by pressing the VIEW BUTTON which displays the captured weather for that particular day. 

If it happens that there is incorrect input of forecast, the interface allows analyst to clear the entered forecast. This is done by pressing the CLEAR button and after that, then, appears a message which says “YOUR FORECASTS HAS BEEN CLEARED”, thus the analyst is in a position to clear the entries and start afresh.
If satisfied, the analyst can save the weather forecast to the hard disk (or database) by clicking the SUBMIT button so that the weather station can have access to the information and when the analyst wants to quit the program, there is an EXIT button which allows to quit.
SNAPSHOTS 
Different snap shots of the weather station have been taken to further explain how the station captures its forecasts. Therefore, from the figures below you will be able to have at least a grasp of how the weather is being forecast at the weather station. As already explained, the interface contains the fields where the analyst will enter the weather forecast and the day’s date.

Thus the figures below show how the weather is being captured from the weather station in five different areas mentioned in the preliminary part.


Figure 1: The Opening Window of Ben Sam Weather Station.

This is an opening window for Ben Sam weather station. This prompts the analyst to capture the weather forecast; this is done by pressing on any green part. This has been designed so, with the aim of making the interface to be user friendly. In contrast, if the EXIT button is pressed, then the weather station closes.

Figure 2: View of the Interface.
This is before entering any weather forecast, the interface looks as below. Then the analyst is able to enter the day’s date in the date field and also enter special weather captures in different area’s fields.



Figure 3: The Interface with fields filled with the weather forecast.

Once the weather forecast has been entered the interface will look as in figure 3 above. While if it happens that the forecast captured was incorrectly captured and then there is need to recapture the weather forecast. The interface is capable of doing that, a clear message appears as in figure 4 below, once the CLEAR button has been pressed.

Figure 4: Displays the clear message.


Figure 5: Display the forecast weather
Once you click on VIEW WEATHER button, you have the window which displays the forecasted weather as shown in table 5 below.

Figure 6A: How to save the weather forecast.
The SUBMIT button, this is a button which is used to save the file to the hard disk. As a weather station, it might require the weather forecast at a later time. So if you have confirmed and the weather captured is correct (i.e. they are displayed on the text area box), you can click on SUBMIT button to save the file. As soon as you click it, the Save dialog box pops up for you to enter the name of the file you are saving and the location you want to save your file. The figure below, shows how the interface looks after clicking the SUBMIT button.



Figure 6B: How to save the weather forecast.
Once you type you file name on file name text field, then the file can now be save in the specified location. But most often, the default location is in “Documents” although there is a chance of choosing any required location.

In contrast, the interface has an EXIT button to the lowest end, which allows closing the interface. This is done by pressing/clicking it.

Figure 7: Saving a file which already exists
Once you typed in a file name that already exists in the specified location an error message appears as shown in figure below. Thus there is a need to save with a new file name in order to proceed. Otherwise, an error message appears.

CONCLUSION

In conclusion, the major objective of the project was to develop a weather capture system interface (using Java Programming Language-OOP). Thus a weather station that captures different weather forecasts in different areas was developed. The interface does some basic features like saving, viewing the captured forecast, just among others. But however, as time goes the interface will be modified to include more areas and more weather forecasts and even the interface itself will be improved so that it looks more attractive than the first version and shall include more features. Again this shall be done by using the same programming language.





.