johnmarco
asked on
Link between "cell" and "formula bar"
Hi,
I am writing a spreadsheet application, there are cells and formula bar. If I type something on the formula bar, I want it to be shown in the cell as well. Could someone please help me to make a link between the cell and the formula bar.
Thank you
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
import javax.swing.event.*;
class tableExample implements ActionListener, TableModelListener
{
JFrame frame;
JTable table;
Vector rows,columns;
DefaultTableModel tabModel;
JScrollPane scrollPane;
JLabel lblMessage;
JButton cmdOpen,cmdSave,cmdNew,cmd Add,cmdDel ete,cmdSet Value,cmdG etValue;
JPanel mainPanel,buttonPanel;
public static void main(String[] args)
{
tableExample t=new tableExample();
}
tableExample()
{
rows=new Vector();
columns= new Vector();
String[] columnNames =
{
"A",
"B",
"C",
"D",
"E",
"F",
"G"
};
addColumns(columnNames);
tabModel=new DefaultTableModel();
tabModel.setDataVector(row s,columns) ;
table = new JTable(tabModel);
scrollPane= new JScrollPane(table);//Scrol lPane
table.setRowSelectionAllow ed(false);
table.getModel().addTableM odelListen er(this);
lblMessage=new JLabel("");
buttonPanel=new JPanel();
cmdOpen=new JButton("Open File");
cmdSave=new JButton("Save File");
cmdNew=new JButton("New File");
cmdAdd=new JButton("Add Row");
cmdDelete=new JButton("Delete") ;
cmdSetValue=new JButton("Set Value");
cmdGetValue=new JButton("Get Value");
buttonPanel.add(cmdOpen);
buttonPanel.add(cmdSave);
buttonPanel.add(cmdNew);
buttonPanel.add(cmdAdd);
buttonPanel.add(cmdDelete) ;
buttonPanel.add(cmdSetValu e);
buttonPanel.add(cmdGetValu e);
cmdOpen.addActionListener( this);
cmdSave.addActionListener( this);
cmdNew.addActionListener(t his);
cmdAdd.addActionListener(t his);
cmdDelete.addActionListene r(this);
cmdSetValue.addActionListe ner(this);
cmdGetValue.addActionListe ner(this);
mainPanel=new JPanel();
frame=new JFrame("Table Example");
frame.setSize(800,600);
frame.setExtendedState(JFr ame.MAXIMI ZED_BOTH);
mainPanel.setLayout(new BorderLayout());
mainPanel.add("Center",scr ollPane);
mainPanel.add("South",butt onPanel);
mainPanel.setBackground(Co lor.white) ;
buttonPanel.setBackground( Color.whit e);
table.getParent().setBackg round(Colo r.black);
frame.getContentPane().add (mainPanel );
frame.setVisible(true);
mainPanel.setBorder(Border Factory.cr eateLineBo rder(Color .black));
}
public void addColumns(String[] colName)//Table Columns
{
for(int i=0;i<colName.length;i++)
columns.addElement((String ) colName[i]);
}
public void addRow() //Add Row
{
Vector r=new Vector();
r=createBlankElement();
rows.addElement(r);
table.addNotify();
}
// Start of Open File Class
public void openFile() //Open File
{
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(cmdOpen) ;
}
public void saveFile() //Save File
{
JFileChooser fc = new JFileChooser();
int returnVal = fc.showSaveDialog(cmdSave) ;
}
public void newFile() //New File
{
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(cmdNew);
}
public Vector createBlankElement()
{
Vector t = new Vector();
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
return t;
}
void deleteRow(int index)
{
if(index!=-1)//At least one Row in Table
{
rows.removeElementAt(index );
table.addNotify();
}
}//Delete Row
public void tableChanged(javax.swing.e vent.Table ModelEvent source) {
String msg="";
TableModel tabMod = (TableModel)source.getSour ce();
switch (source.getType())
{
case TableModelEvent.UPDATE:
msg="Table Value Updated for cell "+table.getSelectedRow()+" ,"+table.g etSelected Column()+" \nWhich is "+table.getValueAt(table.g etSelected Row(),tabl e.getSelec tedColumn( )).toStrin g();
JOptionPane.showMessageDia log(null,m sg,"Table Example",JOptionPane.INFOR MATION_MES SAGE);
break;
}
}//Table Changed Method
public void selectCell(int row,int col)
{
if(row!=-1 && col !=-1)
{
table.setRowSelectionInter val(row,ro w);
table.setColumnSelectionIn terval(col ,col);
}
}
public void actionPerformed(ActionEven t source)
{
if (source.getSource()==(JBut ton) cmdOpen)
{
openFile();
}
if (source.getSource()==(JBut ton) cmdSave)
{
saveFile();
}
if (source.getSource()==(JBut ton) cmdNew)
{
newFile();
}
if (source.getSource()==(JBut ton) cmdAdd)
{
addRow();
}
if (source.getSource()==(JBut ton) cmdDelete)
{
deleteRow(table.getSelecte dRow());
}
if (source.getSource()==(JBut ton) cmdSetValue)
{
String CName=JOptionPane.showInpu tDialog(nu ll,"Enter Value to be set at Cell 0,2 ","Simple Table Example",JOptionPane.INFOR MATION_MES SAGE);
if(!CName.trim().equals("" ) && table.getRowCount()>0)
{
selectCell(0,2);
table.setValueAt(CName,0,2 );
}
}
if (source.getSource()==(JBut ton) cmdGetValue)
{
if(table.getRowCount()>0)
{
String msg="Value At cell 0,0 is "+table.getValueAt(0,0).to String();
JOptionPane.showMessageDia log(null,m sg,"Table Example",JOptionPane.INFOR MATION_MES SAGE);
}
}
}//ActionList
}
I am writing a spreadsheet application, there are cells and formula bar. If I type something on the formula bar, I want it to be shown in the cell as well. Could someone please help me to make a link between the cell and the formula bar.
Thank you
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;
import javax.swing.event.*;
class tableExample implements ActionListener, TableModelListener
{
JFrame frame;
JTable table;
Vector rows,columns;
DefaultTableModel tabModel;
JScrollPane scrollPane;
JLabel lblMessage;
JButton cmdOpen,cmdSave,cmdNew,cmd
JPanel mainPanel,buttonPanel;
public static void main(String[] args)
{
tableExample t=new tableExample();
}
tableExample()
{
rows=new Vector();
columns= new Vector();
String[] columnNames =
{
"A",
"B",
"C",
"D",
"E",
"F",
"G"
};
addColumns(columnNames);
tabModel=new DefaultTableModel();
tabModel.setDataVector(row
table = new JTable(tabModel);
scrollPane= new JScrollPane(table);//Scrol
table.setRowSelectionAllow
table.getModel().addTableM
lblMessage=new JLabel("");
buttonPanel=new JPanel();
cmdOpen=new JButton("Open File");
cmdSave=new JButton("Save File");
cmdNew=new JButton("New File");
cmdAdd=new JButton("Add Row");
cmdDelete=new JButton("Delete") ;
cmdSetValue=new JButton("Set Value");
cmdGetValue=new JButton("Get Value");
buttonPanel.add(cmdOpen);
buttonPanel.add(cmdSave);
buttonPanel.add(cmdNew);
buttonPanel.add(cmdAdd);
buttonPanel.add(cmdDelete)
buttonPanel.add(cmdSetValu
buttonPanel.add(cmdGetValu
cmdOpen.addActionListener(
cmdSave.addActionListener(
cmdNew.addActionListener(t
cmdAdd.addActionListener(t
cmdDelete.addActionListene
cmdSetValue.addActionListe
cmdGetValue.addActionListe
mainPanel=new JPanel();
frame=new JFrame("Table Example");
frame.setSize(800,600);
frame.setExtendedState(JFr
mainPanel.setLayout(new BorderLayout());
mainPanel.add("Center",scr
mainPanel.add("South",butt
mainPanel.setBackground(Co
buttonPanel.setBackground(
table.getParent().setBackg
frame.getContentPane().add
frame.setVisible(true);
mainPanel.setBorder(Border
}
public void addColumns(String[] colName)//Table Columns
{
for(int i=0;i<colName.length;i++)
columns.addElement((String
}
public void addRow() //Add Row
{
Vector r=new Vector();
r=createBlankElement();
rows.addElement(r);
table.addNotify();
}
// Start of Open File Class
public void openFile() //Open File
{
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(cmdOpen)
}
public void saveFile() //Save File
{
JFileChooser fc = new JFileChooser();
int returnVal = fc.showSaveDialog(cmdSave)
}
public void newFile() //New File
{
JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(cmdNew);
}
public Vector createBlankElement()
{
Vector t = new Vector();
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
t.addElement((String) " ");
return t;
}
void deleteRow(int index)
{
if(index!=-1)//At least one Row in Table
{
rows.removeElementAt(index
table.addNotify();
}
}//Delete Row
public void tableChanged(javax.swing.e
String msg="";
TableModel tabMod = (TableModel)source.getSour
switch (source.getType())
{
case TableModelEvent.UPDATE:
msg="Table Value Updated for cell "+table.getSelectedRow()+"
JOptionPane.showMessageDia
break;
}
}//Table Changed Method
public void selectCell(int row,int col)
{
if(row!=-1 && col !=-1)
{
table.setRowSelectionInter
table.setColumnSelectionIn
}
}
public void actionPerformed(ActionEven
{
if (source.getSource()==(JBut
{
openFile();
}
if (source.getSource()==(JBut
{
saveFile();
}
if (source.getSource()==(JBut
{
newFile();
}
if (source.getSource()==(JBut
{
addRow();
}
if (source.getSource()==(JBut
{
deleteRow(table.getSelecte
}
if (source.getSource()==(JBut
{
String CName=JOptionPane.showInpu
if(!CName.trim().equals(""
{
selectCell(0,2);
table.setValueAt(CName,0,2
}
}
if (source.getSource()==(JBut
{
if(table.getRowCount()>0)
{
String msg="Value At cell 0,0 is "+table.getValueAt(0,0).to
JOptionPane.showMessageDia
}
}
}//ActionList
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Please provide a full code which will fit to my code.
Provide a full working code, not an advice.
Provide a full working code, not an advice.
That's not the way this site works, effectively. Could you tell us what kind of problem you are facing when you compile/ run the code?
try this..
http://www.ssec.wisc.edu/~billh/guide.html
R.K