Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 Gui应用程序中打印阵列的各个部分_Java_Arrays_Swing_Actionlistener - Fatal编程技术网

在Java Gui应用程序中打印阵列的各个部分

在Java Gui应用程序中打印阵列的各个部分,java,arrays,swing,actionlistener,Java,Arrays,Swing,Actionlistener,好的,我创建了一个控制台应用程序,其中包括一个数字数组,然后逐行打印出来。现在,我必须将我为该控制台应用程序创建的类放入我们正在创建的单独GUI应用程序中。我有其他所有的方法都可以很好地工作,但就我的一生而言,我无法让数组方法正确地打印出来。它只是给了我在文本字段中输入的最后一个数字。我希望有人能给我一点建议,帮助我弄清楚这部分,这样我就可以继续前进,开始了解SpringLayout的全部内容(新作业的主要部分)。我在这里能展示的内容有限,因为这是一项当前作业,所以我必须尽可能具体地坚持这部分内

好的,我创建了一个控制台应用程序,其中包括一个数字数组,然后逐行打印出来。现在,我必须将我为该控制台应用程序创建的类放入我们正在创建的单独GUI应用程序中。我有其他所有的方法都可以很好地工作,但就我的一生而言,我无法让数组方法正确地打印出来。它只是给了我在文本字段中输入的最后一个数字。我希望有人能给我一点建议,帮助我弄清楚这部分,这样我就可以继续前进,开始了解SpringLayout的全部内容(新作业的主要部分)。我在这里能展示的内容有限,因为这是一项当前作业,所以我必须尽可能具体地坚持这部分内容。还有,请不要只是把代码作为答案发布,(因为那样我就不能用了),谢谢。 以下是我最初的数组方法项目的内容:

  int [] getArray(int x)
  {
    breakUpNum(x);
    return numAry;
  } 
从那以后,在我的新课堂上,我有了这个,试图把它打印出来:

private class ButtonTest implements ActionListener
{
    public void actionPerformed(ActionEvent ae)
    {
        Lab1 tester = new Lab1();

        int[] test4 = tester.getArray(num);

        for(int i = 0; i < test4.length; i ++)
        {
        crossTest.getArrCross.setText("" + test4[i]);
        }              

    }
}
私有类ButtonTest实现ActionListener
{
已执行的公共无效行动(行动事件ae)
{
Lab1测试仪=新的Lab1();
int[]test4=tester.getArray(num);
for(int i=0;i

如果您能为我指明正确的方向,我们将不胜感激,谢谢

setText
就是这样做的,将传递到的文本设置为当前文本内容,而不附加它

如果要使用
JTextArea
,可以使用它的
append
方法……但是,对于
JTextField
,需要使用不同的方法

现在您可以使用
getArrCross.setText(getArrCross.getText()+test4[i])
…但坦率地说,这是相当低效的,因为对
setText
的每次调用都会引发一个绘制事件

StringBuilder sb = new StringBuilder(128);
for(int i = 0; i < test4.length; i ++)
{
    sb.append(test4[i]);
}          
crossTest.getArrCross.setText(sb.toString());

sb.append(test4[i])之前

setText
就是这样做的,将传递到的文本设置为当前文本内容,而不附加它

如果要使用
JTextArea
,可以使用它的
append
方法……但是,对于
JTextField
,需要使用不同的方法

现在您可以使用
getArrCross.setText(getArrCross.getText()+test4[i])
…但坦率地说,这是相当低效的,因为对
setText
的每次调用都会引发一个绘制事件

StringBuilder sb = new StringBuilder(128);
for(int i = 0; i < test4.length; i ++)
{
    sb.append(test4[i]);
}          
crossTest.getArrCross.setText(sb.toString());

sb.append(test4[i])之前

for循环中执行的
操作的最后一位工作不正常
setText
将当前文本替换为其参数,而您似乎不想这样做。要修复此问题,请将for循环中的行替换为:

crossTest.getArrCross.setText(crossTest.getArrCross.getText() + test4[i]);

for循环中执行的
操作的最后一位工作不正常
setText
将当前文本替换为其参数,而您似乎不想这样做。要修复此问题,请将for循环中的行替换为:

crossTest.getArrCross.setText(crossTest.getArrCross.getText() + test4[i]);

好的,这里有一个问题,如果我使用SpringLayout,并且希望能够通过SpringLayout设置每个结果之间的间距,这会起作用吗?这是假设我想在一行上打印所有结果,间隔均匀。您想如何打印它们?在
JTextField
中<代码>JLabel
<代码>JTextArea
?如果您使用的是
JTextField
是否需要将它们放在单独的文本字段中?我可以解释的最好方法是让它看起来像这样:数组1 2 3,在一行上。好的,这在这个文本文件中不起作用。基本上,输出显示在一行中,并且在允许的空间内均匀分布,因此三位数字之间的间距为20像素,但六位数字之间的间距仅为10像素,这有意义吗?我甚至不知道这是否可能。我正在查找SpringLayout可用的所有内容,但我不知道在哪里可以这样做。您应该能够使用不可编辑的
JTextField
来完成此操作,我之所以建议这样做,是因为
JTextField
有自己的剪辑功能,其中as
JLabel
(或多个
JLabel
)不会很好地剪辑,或者如果文本溢出,则允许您滚动到可见性范围之外。这就是为什么我添加了
sb.append(“,”)部分…好的,这里有一个问题,如果我使用SpringLayout,并且希望能够通过SpringLayout设置每个结果之间的间距,这会起作用吗?这是假设我想在一行上打印所有结果,间隔均匀。您想如何打印它们?在
JTextField
中<代码>JLabel
<代码>JTextArea
?如果您使用的是
JTextField
是否需要将它们放在单独的文本字段中?我可以解释的最好方法是让它看起来像这样:数组1 2 3,在一行上。好的,这在这个文本文件中不起作用。基本上,输出显示在一行中,并且在允许的空间内均匀分布,因此三位数字之间的间距为20像素,但六位数字之间的间距仅为10像素,这有意义吗?我甚至不知道这是否可能。我正在查找SpringLayout可用的所有内容,但我不知道在哪里可以这样做。您应该能够使用不可编辑的
JTextField
来完成此操作,我之所以建议这样做,是因为
JTextField
有自己的剪辑功能,其中as
JLabel
(或多个
JLabel
)不会很好地剪辑,或者如果文本溢出,则允许您滚动到可见性范围之外。这就是为什么我添加了
sb.append(“,”)部分…我以前尝试过getText,但不是这样。我甚至没想到你能做到,谢谢!我以前试过getText,但不是这样。信息技术