私はプログラミングクラスの一部としてJavaでアプレットを作成しました。このアプレットは、人の誕生日を受け取り、その人が生まれた曜日を見つけます。割り当ての仕様に従って、このアプレットをAmazonEC2仮想サーバーにも配置します。
これで、人物がJTableから選択されると、プログラムはその人物の情報と、情報の横にあるJTableにある画像ファイルへのパスを取得します。したがって、たとえば、次の要素で構成される選択を行うことができます。
| John Doe | 17 | 02 | 2013 | /images/John.jpg |
これをローカルマシンで実行すると、すべてが期待どおりに機能します。日付が計算され、画像が表示されます。ただし、サーバーに配置すると、次の2つのいずれかが発生します。
- 「画像表示」コードの前に「日付表示」コードを置くと、「計算」ボタンを押すと、テキストのみが表示され、画像は表示されません。
- 「画像表示」コードを「表示日」コードの前に置くと、「計算」ボタンを押しても何も起こりません。
ここで何が起こっているのでしょうか?私の画像はまだ"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] + ".");
}
}