tolgss
asked on
How do I display entered data in a JTable
Hi, I need code-fixing in a small java program.
This will help me understand how to add objects into an array or vector and display it in a simple JTable.
The program displays entered data in a simple JTable.
I have 2 classes with incomplete code that has errors. I require a few lines of code-fixing to get the programming working correctly.
Code has a Data class for retrieving data with setters and getters, and Demo class to run the program.
It has a name and income JTextField for input. Input and Report as action buttons.
Each time the input button is clicked the entered information is saved into an array of objects or vector for storage. After several inputs when the report button is clicked it should show the stored array or vector in a simple JTable for display.
This will help me understand how to add objects into an array or vector and display it in a simple JTable.
The program displays entered data in a simple JTable.
I have 2 classes with incomplete code that has errors. I require a few lines of code-fixing to get the programming working correctly.
Code has a Data class for retrieving data with setters and getters, and Demo class to run the program.
It has a name and income JTextField for input. Input and Report as action buttons.
Each time the input button is clicked the entered information is saved into an array of objects or vector for storage. After several inputs when the report button is clicked it should show the stored array or vector in a simple JTable for display.
public class Data{
private String m_name;
private double m_income;
public Data(){
}
public Data(String name, double income){
m_name = name;
m_income = income;
}
public String getName(){
return m_name;
}
public void setName(String name){
m_name = name;
}
public double getIncome(){
return m_income;
}
public void setIncome(double income){
m_income = income;
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Demo extends JFrame{
private JTable table;
private Data tableData;
private Data array[];
private Data data[][];
JTextField tfName, tfIncome;
public Demo(){
//create user entry fields
tableData = new Data();
JLabel lbName = new JLabel("Name:");
JLabel lbIncome = new JLabel("Income:");
tfName = new JTextField("");
tfIncome = new JTextField("");
final JButton btInput = new JButton("Input");
JButton btReport = new JButton("Report");
JPanel p1 = new JPanel(new GridLayout(1,2));
p1.add(lbName, BorderLayout.WEST);
p1.add(tfName, BorderLayout.EAST);
JPanel p2 = new JPanel(new GridLayout(1,2));
p2.add(lbIncome, BorderLayout.WEST); p2.add(tfIncome, BorderLayout.EAST);
JPanel p3 = new JPanel(new GridLayout(1,2));
p3.add(btInput, BorderLayout.WEST); p3.add(btReport, BorderLayout.EAST);
add(p1, BorderLayout.NORTH); add(p2, BorderLayout.CENTER);
add(p3, BorderLayout.SOUTH);
//button actions
btInput.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
doInput();
}
});
btReport.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
doReport();
}});
}
public void doInput(){
String strName = tfName.getText();
String strIncome = tfIncome.getText();
double dbIncome = (Double.parseDouble(strIncome));
tableData = new Data(strName, dbIncome);
array = new Data[4];
for(int i = 0; i< array.length; i++){
array[i] = new Data(tableData.getName(), tableData.getIncome());
}
// for(int i = 0; i<array.length; i++){
// System.out.println(array[i].getName()+ " " + array[i].getIncome());
// }
}
public void createArray()
{
data = new Data[10][];
final int ROWS = 10;
final int COLS = 1;
data = new Data[ROWS][COLS];
for (int row = 0; row<data.length; row++)
{
for (int col = 0; col< COLS; col++)
{
// data[ROWS][COLS] = array;
}
}
}
public void doReport()
{
tfName.setText("");
tfIncome.setText("");
tfName.requestFocus();
String columnNames[] = {"FullName", "Income"};
// table = new JTable(multiArray, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
final JFrame frame = new JFrame();
frame.add(scrollPane, BorderLayout.CENTER);
frame.setBounds(100,100,900,400);
frame.setResizable(true);
frame.setVisible(true);
}
public static void main(String[] args){
Demo objDemo = new Demo();
objDemo.setBounds(700,200,280,100);
objDemo.setVisible(true);
objDemo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for your prompt solution. Really appreciate it.
where it shows how to insert the row using table model. instead of insertRow, you can call addRow method for your case!