我已经用 Java 编写了一个小程序,作为我的编程课程的一部分,它记录一个人的生日并找到他们出生的星期几。根据分配规范,我们也将把这个小程序放在我们的 Amazon EC2 虚拟服务器上。
现在,当从 JTable 中选择此人时,程序会获取他们的信息以及图像文件的路径,该图像文件也位于他们的信息旁边的 JTable 中。因此,例如,您可以选择包括:
| 约翰·多伊 | 17 | 02 | 2013 | /图像/约翰.jpg |
当我在本地机器上运行它时,一切都按预期工作 - 计算日期并显示图像。但是,当我将它放在我的服务器上时,会发生以下两种情况之一:
- 如果我将“显示日期”代码放在“显示图像”代码之前,那么当我按下“计算”按钮时,只显示文本而图像不显示。
- 如果我将“显示图像”代码放在“显示日期”代码之前,当我按下“计算”按钮时不会发生任何事情。
这里可能会发生什么?我的图像仍在“images/Name.jpg”路径中,我什至尝试使用整个路径(“ https://myUsername.course.ca/assignment/images/Name.jpg ”)。都不行!这种奇怪的行为会有什么明显的原因吗?
/**
* Method that handles the user pressing the "Calculate" button
*/
private class btnCalculateHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
int result;
name = (String)table.getValueAt(table.getSelectedRow(), 0);
day = Integer.parseInt((String)table.getValueAt(table.getSelectedRow(), 1));
month = Integer.parseInt((String)table.getValueAt(table.getSelectedRow(), 2));
year = Integer.parseInt((String)table.getValueAt(table.getSelectedRow(), 3));
result = calculateDayOfWeek(day, month, year);
writeToFile();
ImageIcon imgPerson = new javax.swing.ImageIcon((String)table.getValueAt(table.getSelectedRow(), 4));
Image person = imgPerson.getImage();
Image personResized = person.getScaledInstance(75, 100, java.awt.Image.SCALE_SMOOTH);
ImageIcon imgPersonResized = new ImageIcon(personResized);
image.setIcon(imgPersonResized);
outputValue.setText(name + " was born on a " + days[result] + ".");
}
}