gpt4 book ai didi

java - 在具有滚动功能的 JTextArea 中显示数组

转载 作者:行者123 更新时间:2023-12-02 12:39:54 26 4
gpt4 key购买 nike

我正在创建一个 GUI,允许用户输入佛罗里达州的湖泊信息,然后能够显示该湖泊信息。我希望显示信息位于 JOptionPane.showMessageDialog 中,该对话框能够滚动所有湖泊名称的 ArrayList。我可以将湖泊添加到 ArrayList 中,但它们不会显示在我的 JOptionPane 中,并且它是空白的。我知道它正在读取 ArrayList 中的某些内容,因为它正在打开该窗口。这是下面的代码片段,因为整个事情会很糟糕。

public static ArrayList<Lakes> lake = new ArrayList<Lakes>();
private JTextArea textAreaDisplay;
private JScrollPane spDisplay;

// this is called in my initComponent method to create both
textAreaDisplay = new JTextArea();

for (Object obj : lake)
{
textAreaDisplay.append(obj.toString() + " ");
}

spDisplay = new JScrollPane(textAreaDisplay);

textAreaDisplay.setLineWrap(true);
textAreaDisplay.setWrapStyleWord(true);
spDisplay.setPreferredSize(new Dimension(500, 500));

// this is called in my createEvents method. After creating lakes in the database
// it will display the else statement but it is empty

btnDisplayLake.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try
{
if (lake.size() == 0)
{
JOptionPane.showMessageDialog(null, "No Lakes in database!");
}
else
JOptionPane.showMessageDialog(null, spDisplay, "Display Lakes", JOptionPane.YES_NO_OPTION);
}
catch (Exception e1)
{

}

}
});

感谢您提供的任何帮助。我为此绞尽脑汁好几天了。已经能够完成其他事情,但回到这个问题。

最佳答案

一些明显的问题:

textAreaDisplay = new JTextArea();

应该使用如下代码创建 JTextArea:

 textAreaDisplay = new JTextArea(5, 20);

通过指定行/列,文本区域将能够计算其自己的首选大小。当文本区域的首选大小大于滚动 Pane 的大小时,应该出现滚动条。

spDisplay.setPreferredSize(new Dimension(500, 500));

不要使用setPreferredSize()。滚动区域将根据文本区域的首选大小计算其首选大小。

textAreaDisplay.append(obj.toString() + " ");

我认为您希望每个 Lake 显示在不同的行上,因此我会附加 "\n" 而不是空格。

关于java - 在具有滚动功能的 JTextArea 中显示数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44987582/

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