这是一个主界面,我点击菜单栏中的“寝室基本信息表”(form1)时,数据库返回的数据并没有在界面中显示,而是显示到了eclipse里,怎么让它显示在界面里啊?把代码补进去并加注释说明下,谢谢高手们了!
import java.util.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import java.net.*;public class JM extends JFrame implements ActionListener {
JMenuBar mb = new JMenuBar(); JMenu m1 = new JMenu("文件"); JMenu m11 = new JMenu("打  开  表"); JMenuItem form1 = new JMenuItem("基本信息表"); JMenuItem form2 = new JMenuItem("查寝管理表"); JMenuItem form3 = new JMenuItem("报修管理表"); JMenuItem seeprint = new JMenuItem("打印预览"); JMenuItem print = new JMenuItem("打        印"); JMenuItem exit = new JMenuItem("退        出"); JMenu m2 = new JMenu("编辑"); JMenuItem modify = new JMenuItem("修改"); JMenuItem insert = new JMenuItem("插入"); JMenuItem delete = new JMenuItem("删除"); JMenu m3 = new JMenu("查找"); JMenu m4 = new JMenu("帮助"); JMenuItem about = new JMenuItem("关于"); JMenuItem help = new JMenuItem("帮助"); Container c; JTextArea editor = new JTextArea(); Font t = new Font("sanserif", Font.PLAIN, 12); JM(String s) {
super(s);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(0, 0);
this.setSize(screenSize.width, screenSize.height);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setVisible(true);
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
System.err.println("不能设置外观的原因" + e);
}
c = getContentPane();
c.add(new JScrollPane(editor)); addFileMenu();
addEditMenu();
addSearchMenu();
addHelpMenu();
addJMenuBar();
setJMenuBar(mb);
try {
Init();
} catch (Exception e) {
e.printStackTrace();
}
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} private void addFileMenu() {
m1.add(m11, 0);
m11.add(form1);
m11.addSeparator();
m11.add(form2);
m11.addSeparator();
m11.add(form3);
m1.addSeparator();
m1.add(seeprint);
m1.addSeparator();
m1.add(print);
m1.addSeparator();
m1.add(exit);
m1.setFont(t);
} private void addEditMenu() {
m2.add(modify);
m2.addSeparator();
m2.add(insert);
m2.addSeparator();
m2.add(delete);
m2.setFont(t);
} private void addSearchMenu() {
m3.setFont(t);
} private void addHelpMenu() {
m4.add(about);
m4.addSeparator();
m4.add(help);
m4.setFont(t);
} private void addJMenuBar() {
mb.add(m1);
mb.add(m2);
mb.add(m3);
mb.add(m4);
mb.setBackground(Color.lightGray);
} private void Init() throws Exception {
Container contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout());
exit.addActionListener(this);
form1.addActionListener(this);
} public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if (obj == exit) {
System.exit(0);
} else if (obj == form1) {
form1();
}
} public static void main(String[] args) {
JM jm = new JM("大软寝室管理系统");
} public void form1() { Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:stu");
} catch (Exception e) {
System.err.println("OpenConn:" + e.getMessage());
}
try {
stmt = (Statement) conn.createStatement();
String sql = "select 学号,姓名 from 学生表";
rs = stmt.executeQuery(sql);
while (rs.next()) {
long xh = rs.getLong(1);
String xm = rs.getString(2);
System.out.print("    学号:" + xh);
System.out.println("    姓名:" + xm);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
System.out.print("SQL Exception occur.Message is:");
System.out.print(e.getMessage());
}
}
}

解决方案 »

  1.   


    将form1();构造变成有参数的,接收当前窗体的控件对象,然后在form1中将控件用数据初始化值。
      

  2.   

    JTextArea editor = new JTextArea(); 
    this.add(editor); // new addedSystem.out.print("    学号:" + xh);  ==> editor.append("    学号:" + xh")
    System.out.println("    姓名:" + xm);  ==> editor.append("    姓名:" + xm+"\n");
      

  3.   

    LZ调用的是
    System.out.print("    学号:" + xh);
    System.out.println("    姓名:" + xm); 
    也就是说把结果发送到标准的输出流,在Eclipse里面就是显示在Console View里面.
    要把结果放到窗口上就得把结果放到一个可以显示结果的控件中,在这里也就是editor.
    通过editor.append(....)添加需要显示的结果.
      

  4.   

    那就建立一个JTable,再把数据放进去就行了.
    具体怎么作,和你到底要如何显示数据有关,随便找本书,上网找个例子看看就行了.
      

  5.   

    数据指定到了控制台怎么可能在页面显示,要想在页面显示就定义容器把数据放进去,JTable