我正在努力尝试只显示图像。我正在使用JLabel来显示图像。我正在使用resultset.getBytes("Images")
从数据库中检索图像,当我尝试显示图像时会出现问题。 setIcon
方法不起作用。
这是我用来从数据库中检索信息和图像的方法:
public List<Employee> selectAllEmployees(){
statement = connection.createStatement();
ResultSet resultset = statement.executeQuery( "SELECT * from employees" );
List testEmps = new ArrayList<Employee>();
while ( resultset.next() ) {
Employee e1 = new Employee(
resultset.getBytes("Images"));
testEmps.add(e1);
}
return testEmps;
} catch ( Exception e1) {
}
return null;
}
请注意 - 为了方便起见,我删除了大部分代码。我确实连接到数据库并检索了所有其他数据。为了方便起见,我删除了大部分代码。
这是我用来设置所有其他数据的代码 -
public void showEmps(int index){
idTextField.setText(selectAllEmployees().get(index).getid());
photoLabel.setIcon(selectAllEmployees().get(index).getImages());
}
我离开idTextField
仅用于演示目的。一切都按预期工作。
我知道这与我的员工类有关 -
public class Employee extends Person {
private String id;
private String salary;
private String startDate;
private String title;
private String email;
private static byte [] Images;
public Employee(){
this("", "", "", "", "", "", "", "", "", "", "", Images);
}
public Employee(String id, String Name, String Sex, String date, String address, String postcode, String natIncsNumber,
String title, String startDate, String salary, String email, byte[] images){
super(Name, Sex,natIncsNumber, date, address, postcode);
this.id = id;
this.startDate = date;
this.title = title;
this.salary = salary;
this.email = email;
Images = images;
}
我的问题是,我如何解决问题,因为在我的员工类中,图像的类型为Bytes
我可以使用getBytes
语句来检索图像,但没有{{1} }只设置图标。我确实有另一个代码来循环每个员工,这确实显示了图像,但是,它使用setBytes
方法并使用setIcon
方法,如下所示:
ImageIcon
有人可以帮助我吗?