import javax.swing.*;import java.awt.*;
import java.awt.event.*;
import java.sql.*;import javax.swing.JFrame;public class Statistics extends JFrame implements ActionListener {
String strurl;
Connection conn;
Statement stmt;
ResultSet rs;
private JTextArea resultarea;
ButtonGroup g = new ButtonGroup();
JRadioButton rb1 = new JRadioButton("部门", false), rb2 = new JRadioButton(
"职称", false), rb3 = new JRadioButton("工号", false),
rb4 = new JRadioButton("生日", false); public Statistics() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
} private void jbInit() throws Exception {
this.setDefaultCloseOperation(HIDE_ON_CLOSE);
this.setEnabled(true);
this.setResizable(false);
this.setTitle("统计员工信息");
this.getContentPane().setLayout(null);
g.add(rb1);g.add(rb2);g.add(rb3);g.add(rb4);
rb1.setBounds(new Rectangle(10, 10, 50, 50));
rb1.setFont(new java.awt.Font("Dialog", 0, 12));
rb2.setBounds(new Rectangle(10, 50, 50, 50));
rb2.setFont(new java.awt.Font("Dialog", 0, 12));
rb3.setBounds(new Rectangle(10, 90, 50, 50));
rb3.setFont(new java.awt.Font("Dialog", 0, 12));
rb4.setBounds(new Rectangle(10, 130, 50, 50));
rb4.setFont(new java.awt.Font("Dialog", 0, 12));
resultarea = new JTextArea();
resultarea.setBounds(130, 10, 250, 240);
JScrollPane scrollpane = new JScrollPane(resultarea);
this.add(scrollpane);
resultarea.setEditable(false);
this.getContentPane().add(rb1, null);
this.getContentPane().add(rb2, null);
this.getContentPane().add(rb3, null);
this.getContentPane().add(rb4, null);
this.getContentPane().add(resultarea, null);
this.getContentPane().add(scrollpane, null);
rb1.setVisible(true); rb1.addActionListener(this);
rb2.setVisible(true); rb2.addActionListener(this);
rb3.setVisible(true); rb3.addActionListener(this);
rb4.setVisible(true); rb4.addActionListener(this);
} @Override
public void actionPerformed(ActionEvent ae) {
// TODO Auto-generated method stub
if (ae.getSource() == rb1) {
ResultSet rs = null;
Statement stmt = null;
int i;
try {
resultarea.setText(null);
String url = "jdbc:odbc:StaffInfo";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url, "admin", "123456");
stmt = conn.createStatement();
rs = stmt
.executeQuery("select * from staffinfo order by sdept asc");
while (rs.next()) {
resultarea.append(rs.getString(1));
resultarea.append(rs.getString(2));
resultarea.append(rs.getString(3));
resultarea.append(rs.getString(4));
resultarea.append(rs.getString(5));
resultarea.append(rs.getString(6));
resultarea.append(rs.getString(7));
resultarea.append(rs.getString(8));
resultarea.append(rs.getString(9));
resultarea.append("\n");
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
}数据库中的内容足够多

解决方案 »

  1.   

    layout null
    给scrollpane设大小
      

  2.   

    resultarea.setBounds(130, 10, 250, 240);
    this.getContentPane().add(resultarea, null);
    this.getContentPane().add(scrollpane, null);把这三句话去掉。。
    你把resultarea放入scrollpane中,然后直接设置scrollpane的bounds然后向窗体中直接添加滚动面板就好了。而且你上面不用添加两次resultarea,用this添加之后就不用this.getContentPane().add(scrollpane, null)了。
      

  3.   

    scrollpane.setBounds(130, 10, 250, 240);
    在往窗体中添加前要先设置下。
    scrollpane = new ScrollPane(resultarea,1,2);
    如果想在没有内容的时候也有滚动条就在1和2的地方加参数,具体参数查API。