我目前正在运行一个程序,它从 SQL 数据库中获取新闻帖子,然后将它们加载到用户可以查看它们的文本区域中。但目前我的程序有很大的限制,因为我无法抓取多个帖子,所以它只能显示一篇帖子。
JScrollPane scrollPane_2 = new JScrollPane();
scrollPane_2.setViewportBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
scrollPane_2.setBounds(769, 125, 294, 430);
frame.getContentPane().add(scrollPane_2);
JTextArea textArea = new JTextArea();
scrollPane_2.setViewportView(textArea);
textArea.setFont(new Font("Lantinghei TC", Font.PLAIN, 13));
textArea.setEditable(false);
textArea.setBackground(Color.LIGHT_GRAY);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
frame.getContentPane().add(lblChangelogAndNews);
try {
Connection conn = DriverManager.getConnection( Host, Name, Pass );
PreparedStatement pst = conn.prepareStatement("SELECT * From `news_1`");
ResultSet rs = pst.executeQuery();
while(rs.next()) {
String content =rs.getString("content");
textArea.setText(content);
}
}
catch (Exception e) {
}
我遇到的问题是如何绕过抓取多个新闻项然后以这样的布局显示它们
Title
Content
(每篇文章之间有一个空格)
Title
Content
我目前尝试过的方法都会导致问题,因此我只列出了之前的一个简单的工作方法,它显示了我想要的基础知识。
如果您想了解我正在尝试执行的操作的更多信息,请发表评论,以便我可以提供其他信息来回答。
谢谢 Quinn(注意我目前是编码新手,因此布局很糟糕)
最佳答案
这不完全是 mysql 问题,而是 java swing 问题。如果您查看 while 循环,您会发现它一遍又一遍地写入相同的文本区域。
while(rs.next()) {
String content =rs.getString("content");
textArea.setText(content);
}
您需要的是一个具有数据库链接模型的 JTable。这是之前的一个很好的问答,解释了这是如何完成的:
Most simple code to populate JTable from ResultSet
(通常我会投票结束重复,但我觉得这里需要解释)
关于java - 包含新闻文章的文本区域 - SQL 插入(开始新行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37287430/