gpt4 book ai didi

java - 使用 JLabel 和 ArrayList 中的 java 变量的新行

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

我创建了一个按钮,单击后会在单独的窗口中显示(如下所示)数据库中所有用户的列表。

但是,它们全部显示在一行中!即使我输入了/n - 它也不起作用。我的意思是,当我使用 Sys.out 时,它可以在控制台中工作,但是当我转到窗口并将其放在那里时,它全部都在一行中:(

我应该更改什么才能将所有用户依次显示。

public class ViewAll {
private String listax = "";

ViewAll() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException{

ArrayList<String[]> allUsers = DbBroker.getArray("select * from user");
for(String[] usr : allUsers)
listax += usr[0] + ")" + usr[1] + ", " + usr[2] + ", " + usr[3] + "\n";
}

public void display() {
JFrame lis = new JFrame("List of all users");
lis.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
lis.setLayout(new FlowLayout(FlowLayout.LEFT));
JPanel pane = new JPanel(new GridLayout(0,1));
lis.add(pane);
pane.add(new JLabel("This is the complete list of all users in my db: "));
pane.add(new JLabel(listax));

lis.pack();
lis.setSize(500,400);
lis.setVisible(true);
}}

最佳答案

我建议您不要使用 JLabel,而是使用 JList。它就是为了做这类事情而构建的。这里的关键是:使用正确的工具来完成工作。您似乎还试图在对话框中使用 JFrame,如果是这样,请不要使用 JDialog,甚至 JOptionPane:

public void display(List<String> userList) {
DefaultListModel<String> listModel = new DefaultListModel<String>();
for (String user : userList) {
listModel.addElement(user);
}
JList<String> userLabel = new JList<String>(listModel);
JScrollPane scrollPane = new JScrollPane(userLabel);

String title = "This is the complete list of all users in my db:";

// mainJFrame is the main JFrame for the GUI
JOptionPane.showMessageOption(mainJFrame, scrollPane, title,
JOptionPane.PLAIN_MESSAGE);
}

关于java - 使用 JLabel 和 ArrayList 中的 java 变量的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23143268/

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