带有新闻帖子的TextArea - SQL插入(开始新行)

时间:2016-05-17 22:47:04

标签: java sql swing jdbc jtable

我目前有一个程序正在从SQL数据库中获取新闻帖然后将它们加载到textArea中,用户可以在其中查看它们。但目前我的程序有一个主要限制,因为我只能显示一个帖子,因为我无法抓住多个帖子。

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) {
        }

我遇到的麻烦是如何绕过抓取多个新闻,然后在这样的布局中显示它们

  

标题

     

内容

(每个帖子之间有空格)

  

标题

     

内容

我目前尝试的方法都会导致问题所以我刚刚列出了一个简单的工作方法,它显示了我想要的基础知识。

如果您想进一步了解我想要做的事情,请发表评论,以便我可以回答其他信息。

谢谢Quinn(小心我现在很新编码,因此布局不好)

2 个答案:

答案 0 :(得分:2)

这不是一个mysql问题,而是一个java swing问题。如果你看看你的while循环,你可以看到它反复写了相同的文本区域。

        while(rs.next()) {
            String content =rs.getString("content");
            textArea.setText(content);
        }

您需要的是具有数据库链接模型的JTable。这里有一个很好的以前的Q / A,它解释了如何做到这一点:

Most simple code to populate JTable from ResultSet

(通常我会投票结束重复,但我觉得这里需要解释)

答案 1 :(得分:0)

            try {
            String content = "";
            Connection conn = DriverManager.getConnection( Host, Name, Pass );  
            PreparedStatement pst = conn.prepareStatement("SELECT * From `news_1`");
            ResultSet rs = pst.executeQuery();
            while(rs.next()) {
                content = content + rs.getString("title") + "\n";
                content = content + rs.getString("content") + "\n";
                content = content + "\n";
            }
            textArea.setText(content);
        } 
        catch (Exception e) {
        }

我最终决定不使用表格而是使用我的TextArea使用\ n给我新的行然后只是通过我的数据库抓取标题+内容