Jumat, 19 Juni 2009

Program I/O

/**
* Title : Program Arus
* Deskripsi : Membuat masukan(input) melalui tampilan GUI Sebagai interface
*/

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

public class ProgArusIo extends JFrame {
// Mendeklarasikan Tiga text Field dan atau button jumlah
private JTextField jTFInput1, jTFInput2, jTFHasil;
private JButton btnJumlah,btnSave,btnLoad,btnRefresh;
String namaBerkas1 ="Tarea.out";
String namaBerkas2 ="Tarea1.out";
String namaBerkas3 ="Tarea2.out";

/** Main method */
public static void main(String args [])
{
ProgArusIo frame = new ProgArusIo();
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

/** Konstruktor Default */
public ProgArusIo()
{
setTitle("Menghitung Arus (Ampere)");
setBackground(Color.blue);
setForeground(Color.black);

// Menggunakan panel P1 untuk mengelompokan komponen text Field

JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(0,1,0,2));
p1.add(new JLabel("Tegangan"));
p1.add(jTFInput1 = new JTextField(15));
p1.add(new JLabel("Hambatan"));
p1.add(jTFInput2 = new JTextField(15));
p1.add(new JLabel("Arus"));
p1.add(jTFHasil = new JTextField(15));
jTFHasil.setEditable(false); // Set jTFHasil menjadi non editable

// Menggunakan panel p2 untuk button penjumlahan

JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(3,1,0,10));
p2.add(btnSave = new JButton("Save"));
p2.add(btnLoad = new JButton("Load"));
p2.add(btnRefresh = new JButton("Refresh"));

// Mengeset Flow Layout untuk Frame dan Menambahkan
// panel panel ke frame
JPanel p3=new JPanel();
p3.setLayout(new FlowLayout());
p3.add(btnJumlah=new JButton("Hitung Arus"));
getContentPane().setLayout(new BorderLayout());
getContentPane().add(p1, BorderLayout.CENTER);
getContentPane().add(p2, BorderLayout.EAST);
getContentPane().add(p3, BorderLayout.SOUTH);

// Me-register listener
btnJumlah.addActionListener(new ProgArusIo.PenanganTombol());
btnSave.addActionListener(new ProgArusIo.PenanganTombol());
btnLoad.addActionListener(new ProgArusIo.PenanganTombol());
btnRefresh.addActionListener(new ProgArusIo.PenanganTombol());
show();
}

/** Menangani operasi penjumlahan */

class PenanganTombol implements ActionListener {
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (e.getSource()==btnJumlah)
{
// Mengambil nilai int dari text field dan menggunakan trim()
// untuk membuang spasi yang tidak perlu dalam text field

int volt = (Integer.parseInt(jTFInput1. getText().trim()));
int ohm = (Integer.parseInt(jTFInput2. getText() .trim()));
int hasil = volt/ohm;

// Mengeset hasil pada TextField jTFHasil
jTFHasil.setText(String.valueOf(hasil));
}
else if (s.equals("Save")) {
try {
FileWriter berkasKeluaran1= new FileWriter(namaBerkas1);
FileWriter berkasKeluaran2= new FileWriter(namaBerkas2);
FileWriter berkasKeluaran3= new FileWriter(namaBerkas3);

String isiTextArea = jTFInput1.getText();
String isi1TextArea = jTFInput2.getText();
String isiHasil = jTFHasil.getText();

berkasKeluaran1.write(isiTextArea);
berkasKeluaran2.write(isi1TextArea);
berkasKeluaran3.write(isiHasil);
berkasKeluaran1.close();
berkasKeluaran2.close();
berkasKeluaran3.close();
}
catch (IOException i) {
System.err.println("Gagal menyimpan berkas");
System.exit(1);
}
jTFInput1.setText(" Data Telah Disimpan \n");
jTFInput2.setText(" Data Telah Disimpan \n");
jTFHasil.setText(" Data Telah Disimpan \n");
}
else if (s.equals("Load")) {
try {
FileReader berkasMasukan1= new FileReader(namaBerkas1);
BufferedReader streamMasukan1=new BufferedReader(berkasMasukan1);

FileReader berkasMasukan2= new FileReader(namaBerkas2);
BufferedReader streamMasukan2= new BufferedReader(berkasMasukan2);

FileReader berkasMasukan3= new FileReader(namaBerkas3);
BufferedReader streamMasukan3= new BufferedReader(berkasMasukan3);

String teks1="";
String teks2="";
String teks3="";

while (true) {
String barisData1 = streamMasukan1.readLine();
if (barisData1 == null)
break;
teks1=teks1+barisData1 + '\n';

while (true) {
String barisData2 = streamMasukan2.readLine();
if (barisData2 == null)
break;
teks2=teks2+barisData2 + '\n';

while (true) {
String barisData3= streamMasukan3.readLine();
if (barisData3 == null)
break;
teks3=teks3+barisData3 + '\n';
}
}
}
berkasMasukan1.close();
jTFInput1.setText(teks1);
berkasMasukan2.close();
jTFInput2.setText(teks2);
berkasMasukan3.close();
jTFHasil.setText(teks3);
}

catch (IOException i) {
jTFInput1.setText("Data Error");
jTFInput2.setText("Data Error");
jTFHasil.setText("Data Error");
}
}
else if (s.equals("Refresh")) {
jTFInput1.setText("");
jTFInput2.setText("");
jTFHasil.setText("");
}
}
}
}



Gambar Input:





Gambar Setelah Disimpan:

0 Comments:

 

blogger templates 3 columns | Make Money Online