2012-03-27 95 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。

我想這是一個開始。

相關問題