2012-03-27 98 views
1

到目前为止,我编写的代码使得表格看起来有点像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; 
      } 
     } 

    } 

} 
+0

随机评论:电子表格,'ee'不是'ea' ... – Jon 2012-03-27 03:42:31

+0

是的,我真的这么做很晚 – user1294516 2012-03-27 04:02:01

回答

2
  • 您的电子表格需要一种方法来更新table。例如,你需要在你的电子表格类这样的方法:
 
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。

我想这是一个开始。

相关问题