Forums Register Login

converting program

+Pie Number of slices to send: Send
I have been trying to get a basic spreadsheet created. I have an old program based on an array that has it so you can be in a cell and type =01+02 and it will properly add it. I am now trying to get this to work properly in my new layout. If you have any suggestion please post or email me.

thanks,
jason


[..........OLD SPREADSHEET...............]

import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Spreadsheet extends Frame implements ActionListener{

TextField tf[][];

public Spreadsheet() {
super("Spreadsheet");

MenuBar mybar = new MenuBar();
setMenuBar(mybar);
Menu f_menu = new Menu("File");
f_menu.add(new MenuItem("Open"));
f_menu.add(new MenuItem("Save"));
f_menu.add(new MenuItem("Exit"));
mybar.add(f_menu);


//new container
Container newContainer = new Container();

//creates a grid inside the container
newContainer.setLayout(new GridLayout(3, 4, 0, 0));
// array
tf = new TextField[3][4];
//creates the coordinates for the rows and columns
for (int r=0; r <= 2; r++) {
for (int c=0; c <= 3; c++) {
tf[r][c]=new TextField(10);

//adds the array of textboxes on the container
newContainer.add(tf[r][c]);
tf[r][c].addActionListener(this);
}
}


//creates boaderlayout and adds grid to the center
setLayout(new BorderLayout());
add(newContainer, BorderLayout.CENTER);
Button saveB, openB;
saveB = new Button("Save");
saveB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveFile();
}
});
//ADDS SAVE TO EAST LAYOUT
add(saveB, BorderLayout.EAST);

//ADDS OPEN TO WEST
openB = new Button("Open");
add(openB, BorderLayout.WEST);
openB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openFile();
}
});
pack();
setVisible(true);
}

public static void main(String args[]) {
Spreadsheet spr = new Spreadsheet();
}

//


//MATH PART OF SPREADSHEET


//
public void actionPerformed(ActionEvent e) {
TextField atf = (TextField)e.getSource();
String atftext = atf.getText();
if (atftext.charAt(0)=='=') {
int rf = (int)atftext.charAt(1)-(int)'0';
int cf = (int)atftext.charAt(2)-(int)'0';
char symbol = atftext.charAt(3);
int rs = (int)atftext.charAt(4)-(int)'0';
int cs = (int)atftext.charAt(5)-(int)'0';
int valone = Integer.parseInt(tf[rf][cf].getText());
int valtwo = Integer.parseInt(tf[rs][cs].getText());
switch (symbol) {
case '+': atf.setText(String.valueOf(valone+valtwo));
break;
case '-': atf.setText(String.valueOf(valone-valtwo));
break;
case '*': atf.setText(String.valueOf(valone*valtwo));
break;
case '/': atf.setText(String.valueOf(valone/valtwo));
break;
}
}
}


//SAVES the data to a file
public void saveFile() {
BufferedWriter writer;
try {
writer = new BufferedWriter(new FileWriter("Spreadsheet.data"));
for (int writerow=0;writerow<=2;writerow++)
for (int writecol=0;writecol<=3;writecol++)
writer.write(tf[writerow][writecol].getText());
writer.close();
}
catch (IOException e) {
System.out.println(e);
}
}

//OPENS THE SPREADSHEET.DATA FILE
public void openFile() {
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader("Spreadsheet.data"));
for (int readrow=0;readrow<=2;readrow++)
for (int readcol=0;readcol<=3;readcol++)
tf[readrow][readcol].setText(String.valueOf(reader.read()-'0'));
}
catch (IOException e) {
System.out.println(e);
}
}


}



*************************************************************
NEW FORMAT
*************************************************************


import java.awt.*;
import java.awt.event.*;


import java.lang.Character ;
import java.lang.*;

public class GBLTest extends Frame {

public GBLTest() {
super("GridBagLayout Test");

MenuBar mybar = new MenuBar();
setMenuBar(mybar);
Menu f_menu = new Menu("File");
f_menu.add(new MenuItem("Open"));
f_menu.add(new MenuItem("Save"));
f_menu.add(new MenuItem("Exit"));
mybar.add(f_menu);


//


//Creates the Grid
int rows = 10, cols = 10;
Panel panel = new Panel ( );
panel.setLayout ( new GridBagLayout () );

GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(2,2,2,2); // spacing around components
gbc.weightx = 1.0; // allow horizontal dispersion
gbc.weighty = 1.0; // " vertical "

String s = "";






for(int row = 0; row <= rows; row++) {
for(int col = 0; col <= cols; col++) {
if(col == cols) // last column
gbc.gridwidth = gbc.REMAINDER;
if(row == 0) // top row
s = col > 0 ? String.valueOf(col) : "";
if(row > 0 && col == 0) // left column
s = String.valueOf(row);
if(row == 0 || col == 0) // labels
panel.add(new Label(s, Label.CENTER), gbc);
else { // text fields
if(gbc.fill == gbc.NONE)
gbc.fill = gbc.BOTH;
s = String.valueOf((row - 1) * cols + col);
panel.add(new TextField(s), gbc);


}
}
gbc.gridwidth = 1; // reset for
gbc.fill = gbc.NONE; // next round
}
add ("Center", panel) ;

Panel northPanel = new Panel ( );
northPanel.add ( new Label("Address") );
northPanel.add ( new TextField("",5));
northPanel.add ( new Label("Value") );
northPanel.add ( new TextField("",20));

add ("North", northPanel) ;




addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
setBackground(SystemColor.control);
pack();
setLocationRelativeTo(null);
setVisible(true);
}

public static void main(String[] args) {
new GBLTest();
}
}
+Pie Number of slices to send: Send
Please use UBB code tags so the indentation is preserved in your program.
if you think brussel sprouts are yummy, you should try any other food. And this tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 961 times.
Similar Threads
about JTable
How to flash a row in JTable?
Making co-ordinates co-operate!
label loop ontop of array
border layout
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 07:33:53.