如何显示从控制台到JTextArea的输出

时间:2012-12-23 18:04:00

标签: java swing jtextarea

我是Java编程的初学者。如何将我的输出从控制台显示到JTextArea。这里我的代码只显示输出控制台。任何人都可以告诉或告诉我我该怎么做。谢谢。

import java.sql.*;

public class Route
{

public void routeList() 
{

    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "YarraTram";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root"; 
    String password = "abc123";
    try 
    {
        Class.forName(driver).newInstance();
        conn = DriverManager.getConnection(url+dbName,userName,password);

        PreparedStatement statement = conn.prepareStatement("Select rid,route from route");
        ResultSet result = statement.executeQuery();

        while(result.next())
        {
            System.out.println(result.getString(1)+" "+result.getString(2));

        } 

        conn.close();

    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
 }
} 

这是另一个文件

 import java.awt.FlowLayout;
 import javax.swing.JFrame;
 import javax.swing.JButton;
 import javax.swing.JTextArea;

 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;


 public class GUI
 {
    public void createAndShowGUI()
 {

    JButton button2 = new JButton("Route");

    //create a frame
    JFrame frame = new JFrame("Yarra Tram Route Finder");

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setLayout(new FlowLayout());

    frame.add(button2);

button2.addActionListener(new ActionListener() 
    {

            public void actionPerformed(ActionEvent e)
            {

            //Execute when button is pressed
                    showNewFrame();
                    Route route = new Route();
                    route.routeList();
            }
           public void showNewFrame() 
            {
                JFrame frame = new JFrame("Yarra Tram Route Finder (Route)" );
                JTextArea textArea = new JTextArea();

                frame.add(textArea);
                frame.setSize(500,120);
                frame.setLocationRelativeTo( null );
                frame.setVisible( true );
                textArea.setEditable( false );

            }
    });
            frame.pack();
    frame.setSize(350,100);
    frame.setVisible(true); 
   }
}   

1 个答案:

答案 0 :(得分:3)

修改了现有代码的更改。检查一下

public class GUI extends JFrame {

    JButton button2;
    JTextArea textArea;

    public GUI() {
        super("Yarra Tram Route Finder");
    }

    public void routeList() {

        Connection conn = null;
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "YarraTram";
        String driver = "com.mysql.jdbc.Driver";
        String userName = "root";
        String password = "abc123";
        try {
            Class.forName(driver).newInstance();
            conn = DriverManager.getConnection(url + dbName, userName, password);

            PreparedStatement statement = conn.prepareStatement("Select rid,route from route");
            ResultSet result = statement.executeQuery();

            StringBuilder strBuilder = new StringBuilder();
            while (result.next()) {
                strBuilder.append(result.getString(1)).append(" ").append(result.getString(2));
                strBuilder.append("\n");

            }
            textArea.setText(strBuilder.toString());
            conn.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void createAndShowGUI() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        button2 = new JButton("Route");
        textArea = new JTextArea(20, 20);
        add(textArea);
        add(button2);
        button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                routeList();
            }
        });
        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                GUI gui = new GUI();
                gui.createAndShowGUI();
            }
        });
    }
}