如何在表格的单元格中输入数字?

时间:2012-03-27 03:21:41

标签: java

到目前为止,我编写的代码使得表格看起来有点像excel的表格,并且我可以在编译时输入字母单词,但我不能说例如1a等于5并使1a中的单元格显示为5它。到目前为止,这是我的表格。这是我编写表格的代码:

package table;

public class Spreadsheat {

    private int xVal = 137;
    private int yVal = 1;
    private int[][] table = new int [20][20];
    private char yaxis = 'A';
    private int xaxis = 0;


    public Spreadsheat(){
        for(int i = 0; i < xVal; i++){
            System.out.print("-");
        }

        System.out.println();
        System.out.print(" |");
        for(int i = 0; i < 17; i++){
            System.out.print("| " + yaxis + "\t" + "|" );
            yaxis = (char) (yaxis + 1);
        }

        System.out.println();
        for(int i = 0; i < xVal; i++){
            System.out.print("-");
        }

        System.out.println();
        for(int j = 0; j <10;j++){
            System.out.print(" " + xaxis + "|");
            for(int i = 0; i < 17; i++){
                System.out.print("|" + "\t" + "|" );
            }

            System.out.println();
            xaxis = xaxis + 1;
        }
    }
    public void setxval(int xVal) {
        this.xVal = xVal;
    }
    public int getxVal() {
        return xVal;
    }
    public void setyVal(int yVal) {
        this.yVal = yVal;
    }
    public int getyVal() {
        return yVal;
    }
    public void setTable(int table[][]) {
        this.table = table;
    }
    public int[][] gettable() {
        return table;
    }
}

这是我的客户端程序:

package Client;

import java.util.Scanner;

import table.Spreadsheat;

public class VisiCalc {
    public static void main(String[] args){
        Scanner kb = new Scanner(System.in);
        Spreadsheat table = new Spreadsheat();
        boolean end = false;
        while(end == false){
            String input = kb.next();
            System.out.println(input);
            if(input.contains("quit")){
                end = true;
            }
        }

    }

}

1 个答案:

答案 0 :(得分:2)

  • 您的电子表格需要更新table的方法。例如,您需要在Spreadsheet类中使用这样的方法:
public void setValue(int row, int col, int value) {
    if (row >= 0 && row < 20 && col >=0 && col < 20) {
        table[row][col] = value;
    }
}
  • 您需要一种方法来转换键盘输入,以便调用table.setValue(...)。例如,如果输入“2A = 8”,则您的方法应将该字符串解析为x = 1,y = 0,v = 8并调用table.setValue(x,y,v)。如果您想在电子表格或客户端中使用该方法,则由您决定。

  • 您需要在电子表格中使用一种方法,以便您可以使用更新的内容将表格打印到屏幕上。您将意识到您需要格式化您的内容,以便您的列正确排列。最简单的方法是将每列设置为固定宽度,例如8,并使用java.text.DecimalFormat将int转换为String。

我想这是一个开始。