-->

Membaca text file di java dan menampilkannya di jtextfield

Berhubung ada yang menanyakan cara membaca text file di java dan meloadnya otomatis dengan keyEvent yang akan meload data tersebut secara otomatis. Nah kali ini ane akan memberikan sedikit pencerahan mengenai masalah ini.

Langsung saja Goal kita adalah membaca file text tersebut. Buat project di Netbean. Kemudian taruh file text yang akan diload ke dalam Aplikasi kita nanti. Oke langsung saja semisal kita mempunyai file Log.txt kemudian kita taruh file tersebut dalam satu package kita.
semisal text yang kita punyai formatnya adalah seperti ini Log.txt


1;jakarta;
2;jawa barat;
3;jawa tengah;


Nah untuk membacanya kita bisa menggunakan kode seperti berikut ini

try {
            BufferedReader cfgFile = new BufferedReader(new FileReader(new File("src/tutor/Log.txt")));
            String line = null;
            while ((line = cfgFile.readLine().trim()) != null) {
                if (!line.equals("")) {
                    String[] fields = line.split(";");
                    String key = fields[0];
                    String value = fields[1];
                   
                }
            }

            cfgFile.close();
        } catch (IOException e) {
            System.out.println("Unexpected File IO Error");
        } catch (NullPointerException n) {
        }

Nah kita buat JFrame dengan 2 buah textField dengan tampilan seperti di bawah ini..

Oke tujuan kita adalah meload data tersebut ke dalam textfield. Jika kita memberikan aksi ke textField nomor jika ditemukan dta yang sesuai maka textField kota akan terisi secara otomatis..

Untuk keperluan ini kita bisa gunakan hashMap.. langsung saja lihat bagaimana hasil coding akhirnya..



Hashmap ini nanti dibuat di awal kemudian ditambahkan data dengan membaca file. Kemudian jtextfield1 diberikan aksi untuk meload secara otomatis pada kode jTextField1.addKeyListener...

package tutor;

import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;

//@author mrhands
public class Frame extends javax.swing.JFrame {

    HashMap<Integer, String> hashMap = new HashMap<Integer, String>();

    public Frame() {
        initComponents();
        try {
            BufferedReader cfgFile = new BufferedReader(new FileReader(new File("src/tutor/Log.txt")));
            String line = null;
            while ((line = cfgFile.readLine().trim()) != null) {
                if (!line.equals("")) {
                    String[] fields = line.split(";");
                    String key = fields[0];
                    String value = fields[1];
                    hashMap.put(Integer.parseInt(key), value);
                }
            }

            cfgFile.close();
        } catch (IOException e) {
            System.out.println("Unexpected File IO Error");
        } catch (NullPointerException n) {
        }
        jTextField1.addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(KeyEvent e) {

                super.keyPressed(e);
                try {
                    int textGet = Integer.parseInt(jTextField1.getText());
                    String textSet = hashMap.get(textGet);
                    jTextField2.setText(textSet);
                } catch (Exception ex) {
                }
            }
        });
    }

 
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("no");

        jLabel2.setText("kota");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(40, 40, 40)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(35, 35, 35)
                .addComponent(jLabel2)
                .addGap(18, 18, 18)
                .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(106, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(81, 81, 81)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1)
                    .addComponent(jLabel2))
                .addContainerGap(195, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>


    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Frame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    // End of variables declaration
}

Facebook Comments

4 komentar

kalo manggil data nya pake gambar bisa ga ya??

Balas

Pke gambar gmana maksudnya?

Balas

salam kenal, saya sudah nyobain code diatas, tidak ada error tapi ko form nya tetap kosong...?

Balas

Coba dicek lagi.. banyak kemungkinan kalau kosong..

Balas