JPanelの名前「imagePanel」とボタン名「browseBtn」があります。すべてがJFrameクラスに含まれています。 browseBtnを押すと、ファイル選択が開き、PNG画像ファイルを選択すると、imagePanelに画像が直接表示されます。JPanelで画像が読み込まれない
これはbrowseBtn
private void browseBtnActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JFileChooser fc = new JFileChooser();
int result = fc.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
if (accept(file)) {
try {
ImageIcon image = new ImageIcon(file.getPath());
JLabel l = new JLabel(image);
imagePanel.add(l);
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Error reading file !");
}
}
else {
JOptionPane.showMessageDialog(this, "Choose png file only !");
}
}
}
public boolean accept(File file) {
return file.isDirectory() || file.getAbsolutePath().endsWith(".png");
}
のためのアクションイベントである私は、正しい.PNGファイルを選択しているが、画像がimagePanelに表示されませんでした理由を私は理解していません。あなたは男がそれについて説明できますか? 乾杯。
1)まず最初に、 '新しいイメージアイコン(file.getPath());'最高の '新しいイメージアイコン(ファイル)でなければなりません;' 2)Dynamicall成分を添加していますトリッキー。私は起動時に 'JLabel'を追加して、単に' l.setIcon(..) 'を呼び出すことを提案します。 –
ですが、ImageIcon(ファイル)を使用すると「ImageIcon(ファイル)に適切なコンストラクタが見つかりません」というエラーが発生します。 –
D'Oh!私(そしてオラクル)は悪いです。何かが 'File'パスを表現することになっている時、***は***ファイルのコンストラクタを提供するべきです。 –