现有一个跑马灯形式的滚动窗口类 Frame 另一个类是DBcon DBcon现在已经写好,能和数据库连接,也能查看到我需要看的数据, 但如何在Frame类里面把DBcon的数据滚动显示出来?
代码如下:
Frame类:
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Font; 
import java.awt.HeadlessException; 
import java.awt.Point; 
import java.awt.Toolkit; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.ComponentAdapter; 
import java.awt.event.ComponentEvent; 
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.DriverManager;import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JViewport; 
import javax.swing.Timer; public class Frame extends JFrame { 
private Timer timer; 
private JLabel view; 
private JViewport window; public static void main(String[] args) 

JFrame frm = new Frame(""); 
frm.setDefaultCloseOperation(EXIT_ON_CLOSE); 
frm.pack(); 
frm.setSize(Toolkit.getDefaultToolkit().getScreenSize().width, frm.getHeight());frm.setVisible(true); } public Frame(String title) throws HeadlessException 

super(title); 
initComponents(); 
Toolkit t=this.getToolkit(); 
Dimension d=t.getScreenSize(); 
setBounds( 0 , 9*d.height/10 , d.width , d.height/10 ); 
setUndecorated(true); addComponentListener(new ComponentAdapter() { 
public void componentResized(ComponentEvent e) 

anchor = new Point(); 
anchor.x = -window.getExtentSize().width; 
timer.start(); 

}); 
addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent me) {
timer.stop();
}
});
addMouseListener(new MouseAdapter() {
public void mouseExited(MouseEvent me) {
timer.restart();
}
});timer = new Timer(100, new ActionListener() { 
public void actionPerformed(ActionEvent e) { 
animate(); 

}); 
timer.setInitialDelay(0); 
} private void initComponents() 

view = new JLabel("sssssssss"); 
view.setFont(Font.decode("Dialog-BOLD-36")); 
view.setForeground(Color.BLUE); window = new JViewport(); 
window.setView(view); 
getContentPane().add(window); 
} Point anchor; 
private void animate() 

Dimension extSize = window.getExtentSize(); 
Dimension viewSize = view.getPreferredSize(); 
anchor.x += 10;
window.setViewPosition(anchor); 
if (anchor.x > viewSize.width) 
anchor.x = -extSize.width; 


DBcon类:
import java.sql.*;
public class test1{
public static void main(String args[]){
Connection con;
Statement sql; 
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
System.out.println(""+e);
}
try{
con=DriverManager.getConnection("jdbc:odbc:db2","","");
sql=con.createStatement();
rs=sql.executeQuery("Select * FROM user");
while(rs.next()){
String name=rs.getString(1); 
System.out.println("姓名:"+name); 
}
con.close();
}
catch(SQLException el){}
}

问题补充:如何在Frame类里面将DBcon查到的内容显示出来呢?我现在Frame显示的内容是自己固定输入的,我想要把输入内容从数据库里掉出来,显示数据库的内容.
我的理解是view = new JLabel("sssssssss"); 这个括号里的内容显示是固定的,要变成数据库的内容是不是该改成一个什么方法还是什么,请问要如何改,除了改这里,其他地方还要改吗?不好意思,我是JAVA新手,不太会,问的问题可能有点肤浅,但还是麻烦各位大虾不嫌弃的帮我解答解答,再此万分感谢,顺便祝大家圣诞快乐,

解决方案 »

  1.   


    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.HeadlessException;
    import java.awt.Point;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ComponentAdapter;
    import java.awt.event.ComponentEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JViewport;
    import javax.swing.Timer;public class Frame extends JFrame{
    private Timer timer;
    private JLabel view;
    private JViewport window; public Frame(String title) throws HeadlessException{
    super(title);
    initComponents();
    Toolkit t = this.getToolkit();
    Dimension d = t.getScreenSize();
    setBounds(0,9 * d.height / 10,d.width,d.height / 10);
    setUndecorated(true);
    addComponentListener(new ComponentAdapter() {
    public void componentResized(ComponentEvent e){
    anchor = new Point();
    anchor.x = -window.getExtentSize().width;
    timer.start();
    }
    });
    addMouseListener(new MouseAdapter() {
    public void mouseEntered(MouseEvent me){
    timer.stop();
    }
    });
    addMouseListener(new MouseAdapter() {
    public void mouseExited(MouseEvent me){
    timer.restart();
    }
    });
    timer = new Timer(100,new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    animate();
    }
    });
    timer.setInitialDelay(0);
    } private void initComponents(){
    String content = test1.getContent();
    view = new JLabel(content);
    view.setFont(Font.decode("Dialog-BOLD-36"));
    view.setForeground(Color.BLUE);
    window = new JViewport();
    window.setView(view);
    getContentPane().add(window);
    }
    Point anchor;
    private void animate(){
    Dimension extSize = window.getExtentSize();
    Dimension viewSize = view.getPreferredSize();
    anchor.x += 10;
    window.setViewPosition(anchor);
    if(anchor.x > viewSize.width) anchor.x = -extSize.width;
    }

    public static void main(String[] args){
    JFrame frm = new Frame("");
    frm.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frm.pack();
    frm.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,frm.getHeight());
    frm.setVisible(true);
    }
    }test1.java //类的名字应该用大写开头import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;public class test1{
    public static String getContent(){
    Connection con;
    Statement sql;
    ResultSet rs;
    StringBuffer strb = new StringBuffer();
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }catch(ClassNotFoundException e){
    System.out.println("" + e);
    }
    try{
    con = DriverManager.getConnection("jdbc:odbc:db2","","");
    sql = con.createStatement();
    rs = sql.executeQuery("Select * FROM user");
    String name;
    while(rs.next()){
    name = rs.getString(1);
    System.out.println("姓名:" + name);
    strb.append("姓名:").append(name);
    }
    con.close();
    }catch(SQLException el){
    }
    return strb.toString();
    } public static void main(String args[]){
    System.out.println(getContent());
    }
    }
      

  2.   

    public static Connection getConnection() {
    Connection conn = null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection(
    "jdbc:oracle:thin:@100.1.1.200:1521:orcl", "fsgl", "fsgl");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }
    return conn;
    }
    public boolean isVerifyUserPassword(String user, String password) {
    Connection conn = DBConnection.getConnection();
    String sql = "select * from admin_table where username=? and password=?";
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
    ps = conn.prepareStatement(sql) ;
    ps.setString(1, user);
    ps.setString(2, password);
    rs = ps.executeQuery();
    if (rs.next()) return true;
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (rs != null) {rs.close();}
    if (ps != null) {ps.close();}
    DBConnection.closeConnection(conn);
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    return false;
    }