这段程序为什么滚动条scrollpane无法出来?

lianghua19 2010-03-04 12:24:08
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);
}
}
}
}

数据库中的内容足够多
...全文
118 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang461137703 2010-03-04
  • 打赏
  • 举报
回复
scrollpane.setBounds(130, 10, 250, 240);
在往窗体中添加前要先设置下。
scrollpane = new ScrollPane(resultarea,1,2);
如果想在没有内容的时候也有滚动条就在1和2的地方加参数,具体参数查API。
wang461137703 2010-03-04
  • 打赏
  • 举报
回复
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)了。
truediego 2010-03-04
  • 打赏
  • 举报
回复
layout null
给scrollpane设大小

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧