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

标签 java

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

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;
            }
        }

    }

}

最佳答案

  • 您的电子表格需要一种更新表格的方法。例如,您的 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。

我想这是一个开始。

关于java - 如何在表格的单元格中输入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882957/

相关文章:

java - 比较并检查两个字符串中的最后 4 个字符是否相同?

java - 如何使用 STAX 记住 XMLStreamReader 在 xml 中的位置

Java 将对象映射到 JSON 的几种变体

java - 在 shell 中执行时 JUnit 测试的 ComparisonFailure

java - 如何在 JSP 页面中导入常量

Java 语言环境到字符串

java - 数据库 url 的 "jdbc:mysql:"部分指的是什么?

java - 这个程序的效率如何?

java - 连接到代理防火墙后面的 DBpedia 端点

java - 阻止 Android Spinner 删除列表