gpt4 book ai didi

java - JScrollPane 无法在 GUI 中工作

转载 作者:行者123 更新时间:2023-12-01 18:43:31 25 4
gpt4 key购买 nike

好的,我正在尝试创建一个具有 JScrollPane 的 GUI,它通过 JTextArea 将打印出一组整数,一次一行。我正在使用我为作业创建的一些方法来处理数据,并让其中之一处理以下示例中的数据(我无法显示这些方法,因为它是尚未到期的作业)。这些方法已经过测试并且工作正常,因此在这个问题中不需要它们。到目前为止,文本区域将显示在 GUI 中,但没有附加滚动 Pane ,或者只有 jlabel 将显示通过该方法完成的工作结果。有人可以看一下我的代码并告诉我我做错了什么,因为我已经检查了大约 50 次,并且无法让 GUI 正常工作。

public class MyClassName extends JFrame{

private JScrollPane myScroll;
private JTextArea myTextArea;
private JLabel myMean;
private JLabel myMedian;
private JLabel myMax;
private JLabel myMin;
private JLabel mySum;
private Container content;
private Font myFont;
private SpringLayout layout;


private MyClassName() {
this(500,300,"TEST TITLE");
}

private MyClassName(int width, int height, String title)
{
this.setVisible(true);
this.setTitle(title);
this.setSize(width, height);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiComponent();
}

public void guiComponent()
{
layout = new SpringLayout();
content = this.getContentPane();

int [] test = {50,37,43,12,8,16,32,44,78,92,1,3,66,34};

myTextArea = new JTextArea();

myScroll = new JScrollPane(myTextArea);
content.add(myScroll);

myMean = new JLabel("MEAN : " + MyClassName.mean(test));
for(int count : test)
{
String z = Integer.toString(count);
myTextArea.append('\n' + z);
}

myFont = new Font("Serrif", Font.BOLD, 30);
myMean.setFont(myFont);

content.add(myScroll);
layout.putConstraint(SpringLayout.WEST, myScroll, 20, SpringLayout.WEST, content);
layout.putConstraint(SpringLayout.NORTH, myScroll, 25, SpringLayout.NORTH, content);

content.add(myMean);
layout.putConstraint(SpringLayout.WEST, myMean, 20, SpringLayout.EAST, myScroll);
layout.putConstraint(SpringLayout.NORTH, myMean, 25, SpringLayout.NORTH, content);
}

public static double mean(int[] ar) {
double x = 0;
for (int i = 0; i < ar.length; i++) {
x += ar[i];
}
return x / ar.length;
}

public static void main(String[] args) {

MyClassName test2 = new MyClassName();
}

最佳答案

当您需要在布局中显示组件时,要解决您的问题,请在初始化“myTextArea”组件后添加这三行:

myTextArea.setColumns(20);
myTextArea.setRows(5);
getContentPane().setLayout(layout);

你可能需要阅读这篇文章link about Layout .

关于java - JScrollPane 无法在 GUI 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18939976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com