java - 对齐 JTextArea 中由空格组成的字符串中的列

标签 java swing

我试图在 JTextArea 中附加一个由空格组成的字符串。 代码和逻辑一切都很好,但输出不是我想要的方式。 我得到的输出是这样的,

实际输出

Actual output

期望的输出

Desired output

这是一个处方,“0---0---0”字符串与剂量说明相关,我希望看起来像这样,

我的代码是,

medicinename_str = medicinepanel.getComboBox().getEditor().getItem().toString();
        strength_str = strength.getText();
        if(morning.isSelected()){
           timings_str = timings_str + "1-----" ;
        }else{
           timings_str = timings_str + "0-----" ;
        }
        if(afternoon.isSelected()){
            timings_str = timings_str + "1-----" ;
        }else{
           timings_str = timings_str + "0-----" ;
        }
        if(night.isSelected()){
            timings_str = timings_str + "1" ;
        }else{
           timings_str = timings_str + "0" ;
        }
        quantity_str = quantity.getText();
        medicinename_str = "Tab. "+medicinename_str;
        int spaces = spacelength - medicinename_str.length();//spacelength is initialized to 40 in the constructor of the JPanel the JTextArea is added in.
        System.out.println("spaces ="+spaces);
        String spacestring = " ";
        for(int i = 1; i<spaces; i++){
           spacestring = spacestring + " ";
        }
        medicinename_str = medicinename_str+spacestring;
        MainFrame.getPrescriptionArea().append(medicinename_str);
        System.out.println("Medicine strlength "+medicinename_str.length());
        MainFrame.getPrescriptionArea().append(timings_str+"\n");

        timings_str = "";

最佳答案

发生这种情况是因为字体不是等宽字体。

对于相同的文本:

Tab.Amusulpride          0-----0-----0
Tab.Abilify              0-----0-----0

使用 Arial(非等宽字体)

enter image description here

使用 Courier New(等宽字体)

enter image description here

关于java - 对齐 JTextArea 中由空格组成的字符串中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41362635/

相关文章:

java - Swing 和 JavaFX : how to convert JavaFX MouseEvent to Swing MouseEvent?

java - 我的代码中每个商品的数量结果有什么问题?

java - 我在哪里更改 Eclipse 中的设置,以便它为可序列化类生成 serialVersionUID?

java - 使用 java-apns 检测推送问题

java - 无法使用创建的bean

java - 简单的 JDialog 导致堆栈溢出

java - configuration.yml 出现错误 : * Unrecognized field at: driverClass - DROPWIZARD

java - 我如何让 ActionListener 监听按键?

java - 如何将任务栏按钮上的图像更改为 Swing 应用程序上的自定义图像?

Java 绘图到 JPanel(调试)