import java.awt.*; import java.awt.event.*; import java.text.ParseException; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import com.zfqjava.swing.*; import com.zfqjava.swing.cell.*; import com.zfqjava.formula.Formula; import com.zfqjava.formula.FormulaFactory; public class FormulaDemo extends JDataGridBean { public FormulaDemo() { super(); configure(); } private void configure() { final JDataGrid dataGrid = getDataGrid(); dataGrid.setModel(createModel()); final JButton a = new JButton("Restore Model..."); a.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dataGrid.setModel(createModel()); } }); getToolBar(JDataGridBean.MAIN_TOOLBAR).add(a); } protected DataGridModel createModel() { DataGridModel model = new DefaultDataGridModel(14, 8); FormulaFactory factory = FormulaFactory.getDefault(); // cell(0,0) Formula formula1 = null; try { formula1 = factory.createFormula("3+4*6+7"); } catch (ParseException e) { e.printStackTrace(); } model.setCellClass(Formula.class, 0, 0); model.setValueAt(formula1, 0, 0); // cell(3, 5) try { formula1 = factory.createFormula("(3+4)*(6+7)"); } catch (ParseException e) { e.printStackTrace(); } model.setCellClass(Formula.class, 3, 5); model.setValueAt(formula1, 3, 5); // cell(12, 6) try { formula1 = factory.createFormula("(3+4*6)+7"); } catch (ParseException e) { e.printStackTrace(); } model.setCellClass(Formula.class, 12, 6); model.setValueAt(formula1, 12, 6); // cell(13, 7) try { formula1 = factory.createFormula("3+(4*6+7)"); } catch (ParseException e) { e.printStackTrace(); } model.setCellClass(Formula.class, 13, 7); model.setValueAt(formula1, 13, 7); return model; } public static void main(String[] args) { final FormulaDemo demo = new FormulaDemo(); demo.setDefaultCloseOperation(JBean.EXIT_ON_CLOSE); SwingUtilities.invokeLater(new Runnable() { public void run() { demo.showFrame(); demo.getDataGrid().requestFocus(); } }); } }