Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将列表中的项目打印到JTextArea?_Java_Swing_List_Jtextfield_Jtextarea - Fatal编程技术网

Java 如何将列表中的项目打印到JTextArea?

Java 如何将列表中的项目打印到JTextArea?,java,swing,list,jtextfield,jtextarea,Java,Swing,List,Jtextfield,Jtextarea,我无法通过方法将列表中的项目打印到JTextArea中 void grab(){ if(appleField.getText().equals("")){ appleField.setText(""); } else{ int a = Integer.parseInt(appleField.getText()); list.add(new MyShoppingCart(a, "Apples bought:")); }

我无法通过方法将列表中的项目打印到JTextArea中

void grab(){

    if(appleField.getText().equals("")){
       appleField.setText("");
    }
    else{
        int a = Integer.parseInt(appleField.getText());
        list.add(new MyShoppingCart(a, "Apples bought:"));
    }

    if(bananaField.getText().equals("")){
       bananaField.setText("");
    }
    else{
        int b = Integer.parseInt(bananaField.getText());
        list.add(new MyShoppingCart(b, "Bananas bought:"));
    }

    if(cherryField.getText().equals("")){
       cherryField.setText("");
    }
    else{
        int c = Integer.parseInt(cherryField.getText());
        list.add(new MyShoppingCart(c, "Cherries bought:"));
    }

    if(dukuField.getText().equals("")){
       dukuField.setText("");
    }
    else{
        int d = Integer.parseInt(dukuField.getText());
        list.add(new MyShoppingCart(d, "Dukus bought:"));
    }

    if(elderField.getText().equals("")){
       elderField.setText("");
    }
    else{
        int e = Integer.parseInt(elderField.getText());
        list.add(new MyShoppingCart(e, "Elderberries bought"));
    }

    if(falField.getText().equals("")){
       falField.setText("");
    }
    else{
        int f = Integer.parseInt(falField.getText());
        list.add(new MyShoppingCart(f, "Falberries bought"));
    }

    if(gacField.getText().equals("")){
       gacField.setText("");
    }
    else{
        int g = Integer.parseInt(gacField.getText());
        list.add(new MyShoppingCart(g, "Gacs bought"));
    }

    if(honeyField.getText().equals("")){
       honeyField.setText("");
    }
    else{
        int h = Integer.parseInt(honeyField.getText());
        list.add(new MyShoppingCart(h, "Honeydews bought"));;
    }

    if(mangoField.getText().equals("")){
       mangoField.setText("");
    }
    else{
        int m = Integer.parseInt(mangoField.getText());
        list.add(new MyShoppingCart(m, "Mangos bought"));
    }

    if(passionField.getText().equals("")){
       passionField.setText("");
    }
    else{
        int p = Integer.parseInt(passionField.getText());
        list.add(new MyShoppingCart(p, "Passion fruits bought"));
    }

}
它只是解析每个值,然后如果它包含某些内容,就将其添加到列表中

这里是“附加”的方法


我知道print语句是错误的,但这是我现在唯一的东西。

似乎您在文本区域中设置购物项目的格式时有问题。尝试使用
String.format
正确格式化每一行,例如:

for (MyShoppingCart s : list) {
    cartArea.append(String.format("%-20s %-20s\n", s.getName(), s.getQuantity()));
}
确保使用固定宽度字体,即
单间距字体

Font font = new Font("Monospaced", Font.PLAIN, 14);
textArea.setFont(font);

作为另一种选择,考虑使用一个完全不同的控件-<代码> jTabe>代码>。它可能更合适,因为它支持多个列。如果需要,可以隐藏轴网线。有关一些示例,请参见

您指的是哪种“打印声明”?(在Java中,“print statement”通常表示
System.out.println
——但这里没有这样的语句。)它在哪方面是错误的?你遇到了什么问题?考虑使用<代码> jList< /Cord>。我可能错了,但是我相信 JTextArea 默认使用固定宽度字体…但是……这可能是外观和感觉相关的;没错,这取决于L&F。对于
WindowsLookAndFeel
,它是
单间隔的
;对于
MetalLookAndFeel
,它是
对话框
Font font = new Font("Monospaced", Font.PLAIN, 14);
textArea.setFont(font);