在Java Gui应用程序中打印阵列的各个部分
好的,我创建了一个控制台应用程序,其中包括一个数字数组,然后逐行打印出来。现在,我必须将我为该控制台应用程序创建的类放入我们正在创建的单独GUI应用程序中。我有其他所有的方法都可以很好地工作,但就我的一生而言,我无法让数组方法正确地打印出来。它只是给了我在文本字段中输入的最后一个数字。我希望有人能给我一点建议,帮助我弄清楚这部分,这样我就可以继续前进,开始了解SpringLayout的全部内容(新作业的主要部分)。我在这里能展示的内容有限,因为这是一项当前作业,所以我必须尽可能具体地坚持这部分内容。还有,请不要只是把代码作为答案发布,(因为那样我就不能用了),谢谢。 以下是我最初的数组方法项目的内容:在Java Gui应用程序中打印阵列的各个部分,java,arrays,swing,actionlistener,Java,Arrays,Swing,Actionlistener,好的,我创建了一个控制台应用程序,其中包括一个数字数组,然后逐行打印出来。现在,我必须将我为该控制台应用程序创建的类放入我们正在创建的单独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
有自己的剪辑功能,其中asJLabel
(或多个JLabel
)不会很好地剪辑,或者如果文本溢出,则允许您滚动到可见性范围之外。这就是为什么我添加了sb.append(“,”)代码>部分…好的,这里有一个问题,如果我使用SpringLayout,并且希望能够通过SpringLayout设置每个结果之间的间距,这会起作用吗?这是假设我想在一行上打印所有结果,间隔均匀。您想如何打印它们?在JTextField
中<代码>JLabel
<代码>JTextArea
?如果您使用的是JTextField
是否需要将它们放在单独的文本字段中?我可以解释的最好方法是让它看起来像这样:数组1 2 3,在一行上。好的,这在这个文本文件中不起作用。基本上,输出显示在一行中,并且在允许的空间内均匀分布,因此三位数字之间的间距为20像素,但六位数字之间的间距仅为10像素,这有意义吗?我甚至不知道这是否可能。我正在查找SpringLayout可用的所有内容,但我不知道在哪里可以这样做。您应该能够使用不可编辑的JTextField
来完成此操作,我之所以建议这样做,是因为JTextField
有自己的剪辑功能,其中asJLabel
(或多个JLabel
)不会很好地剪辑,或者如果文本溢出,则允许您滚动到可见性范围之外。这就是为什么我添加了sb.append(“,”)代码>部分…我以前尝试过getText,但不是这样。我甚至没想到你能做到,谢谢!我以前试过getText,但不是这样。信息技术