到目前为止,我编写的代码使得表格看起来有点像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 :(得分: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。
我想这是一个开始。