package edu.mbl.jif.gui.imaging.array;
import java.awt.*;
import java.util.ArrayList;
import javax.swing.JTabbedPane;
import javax.swing.JScrollPane;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class PanelTabbedImage
extends JTabbedPane {
ArrayList images;
public PanelTabbedImage() {}
public PanelTabbedImage(ArrayList _images) {
super();
images = _images;
if (images == null) {
System.err.println("No images in array.");
return;
}
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
setTabPlacement(JTabbedPane.BOTTOM);
try {
for (int i = 0; i < images.size(); i++) {
ImagePanel ip = new ImagePanel();
JScrollPane sp = new JScrollPane(ip);
sp.getVerticalScrollBar().setUnitIncrement(100);
sp.getHorizontalScrollBar().setUnitIncrement(100);
ip.setImage( (BufferedImage) images.get(i));
System.out.println("" + i);
addTab("" + i, sp);
}
} catch (IndexOutOfBoundsException ioobe) {
}
}
class ImagePanel extends JComponent{
protected BufferedImage image=new BufferedImage(1,1,BufferedImage.TYPE_INT_RGB);
public ImagePanel(){
// ImageIO.scanForPlugins();
}
public BufferedImage getImage(){
return image;
}
public void setImage(BufferedImage image){
this.image=image;
repaint();
}
public void paint(Graphics gc){
Graphics2D g=(Graphics2D)gc;
g.drawImage(image,0,0,null);
}
public Dimension getPreferredSize(){
return new Dimension(image.getWidth(),image.getHeight());
}
}
public static void main(String[] args) {
ArrayList imgs = null;
JFrame f = new JFrame();
PanelTabbedImage tip = new PanelTabbedImage(imgs);
f.getContentPane().add(tip, BorderLayout.CENTER);
f.setBounds(0, 0, 500, 500);
f.setVisible(true);
}
}