0

データベースから jlabel IMAGES = 列名、currentuser.getText() = に画像を表示しようとしています = データベースの列 USERNAME を決定するテキストが一番上にあります

編集済み - もう何をすべきか本当にわかりません.1週間経ちましたが、データベースから画像を表示できません

public class MyProfile extends JFrame implements ActionListener{
Container c;
ResultSet rs;
Connection con;
Statement st;
TempData temp = new TempData(); //Class for storing current user who logins (Set & get)
JLabel currentuser = new JLabel("" + temp.getUsername());
JLabel displayPhoto = new JLabel();
public MyProfile() {
    super("My Profile");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(1175, 698);
    this.setLocationRelativeTo(null);
    this.setVisible(true)
    c = this.getContentPane();
    c.setLayout(null);

    try {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost/pancakefinder", "root", "");
        st = con.createStatement();
    } catch (Exception exp) {
    }

    c.add(currentuser);
    currentuser.setFont(new Font("Times New Roman", Font.PLAIN, 20));
    currentuser.setForeground(Color.orange);

    c.add(displayPhoto);
    displayPhoto.setBounds(160, 330, 250, 230);
    displayPhoto();
}

public void displayPhoto() {
    try {
       PreparedStatement pst = null;
       rs = null;
        pst = con.prepareStatement("select IMAGES from  images where USERNAME = '" + currentuser.getText() + "'");
        rs = pst.executeQuery();

        byte[] bytes = null;
        if (rs.next()) {
            bytes = rs.getBytes("images");
            Image img = Toolkit.getDefaultToolkit().createImage(bytes);
            displayPhoto.setIcon(new ImageIcon((img)));
            displayPanel.add(displayPhoto);
        }

    } catch (SQLException e) {

        e.printStackTrace();
    }


}
public static void main(Stringp[] args){
MyProfile ex = new MyProfile();

} }

4

1 に答える 1

0

私はそれdisplayPanelが であり、 であるJPanelと推測してdisplayPhotoJLabelます。の前にdisplayPhoto追加されていれば、十分なはずです。そうでない場合は、の後にパネルに移動する必要があります。また、結果が 他の行を取得するにはループが必要です。pack()setIcon()revalidate()add()rs.next()false

于 2013-11-04T12:38:17.617 に答える