Neelam
Neelam

Reputation: 3

Store contents from JTable into a text file

I have written a swings form with 5 text boxes and a button. When i click the button save, the data entered is being displayed in the table. Now i want to store the data shown in the table into a text file. Can anyone please help me with this code. I am still a java beginner and have very less idea about java coding. After lot of surfing, i was able to do the table part. I am attaching the code done so far. Please excuse if i have done some silly mistakes. Really in need of your help. Thanks in advance..

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

class ReadTextFile extends JFrame  
{   
JButton save;  
JPanel panel;   
JLabel label1,label2,label3,label4,label5;   
final JTextField text1,text2,text3,text4,text5;    

ReadTextFile(){    
label1 = new JLabel();   
label1.setText("English Word:");   
text1 = new JTextField(20);    

label2 = new JLabel();   
label2.setText("English Synonym:");   
text2 = new JTextField(20);   

label3 = new JLabel();    
label3.setText("Kannada Word:");    
text3 = new JTextField(20);    

label4 = new JLabel();      
label4.setText("Kannada Synonym:");    
text4 = new JTextField(20);    

label5 = new JLabel();
label5.setText("Parts of Speech:");    
text5 = new JTextField(20);     

save=new JButton("SAVE");    

panel=new JPanel(new GridLayout(6,2));     
panel.add(label1);     
panel.add(text1);       
panel.add(label2);     
panel.add(text2);    
panel.add(label3);     
panel.add(text3);     
panel.add(label4);     
panel.add(text4);      
panel.add(label5);     
panel.add(text5);    
panel.add(save);    
add(panel,BorderLayout.CENTER);    
setTitle("Word Base");     

save.addActionListener(new ActionListener() {    
public void actionPerformed(ActionEvent ae){      
String value1=text1.getText();     
String value2=text2.getText();     
String value3=text3.getText();      
String value4=text4.getText();       
String value5=text5.getText();     
Object rowData[][] = { { value1, value2,value3,value4, value5} };     
Object columnNames[] = { "English Word", "English Synonym", "Kannada Word","Kannada Synonym","POS" };      
JFrame f=new JFrame();       
JTable table = new JTable(rowData,columnNames);        
JScrollPane scrollPane = new JScrollPane(table);       
JPanel p=new JPanel();       
p.add(scrollPane);       
f.add(p);       
f.setVisible(true);      
//f.setDefaultLookAndFeelDecorated(true);      
f.setSize(400,200);        
}      
});      
}        

public static void main(String arg[])     
{       
try    
{      
  ReadTextFile frame=new ReadTextFile();        
  frame.setSize(300,200);       
  frame.setVisible(true);       
}        
catch(Exception e)       
{}      
 }      
}          

Upvotes: 0

Views: 1731

Answers (2)

Ravindra Gullapalli
Ravindra Gullapalli

Reputation: 9188

In your button action listener, you can get data table from table and write into file like this.

StringBuffer sbTableData = new StringBuffer();
for(int row = 0; row < table.getRowCount(); row ++){
    for(int column = 0; column < table.getColumnCount(); column ++){
        sbTableData.append(table.getValueAt(row, column)).append("\t");
    }
    sbTableData.append("\n");
}
// Write `sbTableData.toString()` into a file here

Upvotes: 1

Railre
Railre

Reputation: 21

First of all, you need to add your button click event,like is:

save.addActionListener(new ActionListener(){
//this you must get JFiledText value and use ioStream input to file
})

Upvotes: 0

Related Questions