Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Исходный текст программы CardDemo.java

Оглавление

Назад

// ==========================================
// CardDemo.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web:    http://www.glasnet.ru/~frolov 
// ==========================================
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class CardDemo extends Applet
  implements ActionListener
{
  picViewer pv;
  
  Button btnNext;
  Button btnPrev;
  Button btnFirst;
  Button btnLast;
  
  // ============================================
  // init
  // ============================================
  public void init()
  {
    Image[] imgSlides;
    imgSlides = new Image[7];
    
    MediaTracker tr = new MediaTracker(this);
    
    for(int i = 0; i < 7; i++)
    {
      imgSlides[i] = getImage(getCodeBase(), 
	"pic0" + (i + 1) + ".gif");
	
      tr.addImage(imgSlides[i], 0);
      try
      {
        tr.waitForAll();
      }
      catch (InterruptedException e) {}
    }
    
    pv = new picViewer(imgSlides); 
    add(pv);    
    
    btnNext = new Button("Next");
    btnPrev = new Button("Prev");
    btnFirst = new Button("First");
    btnLast = new Button("Last");
  
    add(btnNext);
    add(btnPrev);
    add(btnFirst);
    add(btnLast);
    
    btnNext.addActionListener(this);
    btnPrev.addActionListener(this);
    btnFirst.addActionListener(this);
    btnLast.addActionListener(this);
  }
  
  // ============================================
  // actionPerformed
  // ============================================
  public void actionPerformed(ActionEvent e)
  {
    if(e.getSource().equals(btnNext))
    {
      ((CardLayout)
	pv.getLayout()).next(pv);
    }
    
    else if(e.getSource().equals(btnPrev))
    {
      ((CardLayout)
	pv.getLayout()).previous(pv);
    }
      
    else if(e.getSource().equals(btnFirst))
    {
      ((CardLayout)
	pv.getLayout()).first(pv);
    }
      
    else if(e.getSource().equals(btnLast))
    {
      ((CardLayout)
	pv.getLayout()).last(pv);
    }
  }
  
  // ============================================
  // getAppletInfo
  // ============================================
  public String getAppletInfo()
  {
    return "Name: CardDemo";
  }
}

// ============================================
// Class picViewer
// ============================================
class picViewer extends Container
{
  picFrame[] pf;
  
  public picViewer(Image[] imgSlides)
  {
    int nSlides = imgSlides.length;
    
    setLayout(new CardLayout());
    pf = new picFrame[nSlides];
  
    for(int i = 0; i < nSlides; i++)
    {
      pf[i] = new picFrame(imgSlides[i]);
      add("pic0" + (i + 1) + " ", pf[i]);
    }
  }
}

// ============================================
// Class picFrame
// ============================================
class picFrame extends Canvas
{
  int imHeight;
  int imWidth;
  Image im;
  Dimension dimMinSize;
  
  // ============================================
  // picFrame
  // ============================================
  public picFrame(Image img)
  {
    im = img;
    imHeight = im.getHeight(this);
    imWidth = im.getWidth(this);
    
    dimMinSize = 
      new Dimension(imWidth, imHeight);
  }
  
  // ===========================================
  // paint
  // ===========================================
  public void paint(Graphics g)
  {
    g.drawImage(im, 0, 0, this);
  }
  
  // ===========================================
  // getPreferredSize
  // ===========================================
  public Dimension getPreferredSize()
  {
    return dimMinSize;
  }
  
  // ===========================================
  // getMinimumSize
  // ===========================================
  public Dimension getMinimumSize()
  {
    return dimMinSize;
  }
  
  // ===========================================
  // preferredSize
  // ===========================================
  public Dimension preferredSize()
  {
    return dimMinSize;
  }
  
  // ===========================================
  // minimumSize
  // ===========================================
  public Dimension minimumSize()
  {
    return dimMinSize;
  }
}

[Назад]