0
アクティブなJInternalFrameの取得に問題があります。私はいくつかの操作を実行するので、私はアクティブなImageInternalFrame(私のクラスは、JInternalFrameを拡張する)を示す必要があります。私はそれを解決する方法を知らない、誰かが私を助けることができますか?Swing:アクティブになる方法JInternalFrame
public class MainFrame extends javax.swing.JFrame {
ArrayList <ImageInternalFrame> imageInternalFrameList = new ArrayList();
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
String filePath = f.getPath();
BufferedImage bufferedImage;
ImageInternalFrame imageInternalFrame;
String mimetype= new MimetypesFileTypeMap().getContentType(f);
String type = mimetype.split("/")[0];
if(type.equals("image")){
bufferedImage = null;
try {
bufferedImage = ImageIO.read(new File(filePath));
} catch (IOException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
imageInternalFrame = new ImageInternalFrame(filePath);
imageInternalFrame.setSize(bufferedImage.getWidth(), bufferedImage.getHeight());
imageInternalFrame.setVisible(true);
imageInternalFrame.setLocation(imageInternalFrameList.size() * 25 , imageInternalFrameList.size() * 25);
add(imageInternalFrame);
imageInternalFrameList.add(imageInternalFrame);
}
else{
JOptionPane.showMessageDialog(null, "It's NOT an image");
}}
public class ImageInternalFrame extends javax.swing.JInternalFrame {
public ImageInternalFrame(String imagePath) {
initComponents();
setImage(imagePath);
}
public void setImage(String imagePath){
imageLabel.setIcon(new ImageIcon(imagePath));
imageLabel.paintImmediately(imageLabel.getVisibleRect());
}
}
コードスニペット、HTML/XMLや入出力などの構造化文書には、コードの書式設定を使用してください。これを行うには、テキストを選択し、メッセージの投稿/編集フォームの上部にある「{}」ボタンをクリックします。 –