package jalview.gui; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SplashScreen extends JPanel implements Runnable { boolean visible = true; JInternalFrame iframe; Image image; public SplashScreen(JInternalFrame iframe, Image i) { this.iframe = iframe; image = i; Thread t = new Thread(this); t.start(); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) { try { closeSplash(); } catch (Exception ex) {} } }); } public void run() { long startTime = System.currentTimeMillis()/1000; while( visible ) { if( System.currentTimeMillis()/1000 - startTime > 5) visible = false; try{ Thread.sleep(400); iframe.setSelected(true); } catch(Exception ex){} } closeSplash(); } public void closeSplash() { try { iframe.setClosed(true); } catch (Exception ex) {} } public void paintComponent(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,getWidth(),getHeight()); g.setColor(Color.black); g.setFont( new Font("Verdana", Font.BOLD, 18)); if(image!=null) g.drawImage(image, 5,60,this); g.drawString("JalView 2005", 50,50); g.setFont( new Font("Verdana", Font.BOLD, 14)); g.drawString("Authors: Michele Clamp, James Cuff, Steve Searle, Andrew Waterhouse, Jim Procter & Geoff Barton.",50,70); g.drawString("Current development managed by Andrew Waterhouse; Barton Group, University of Dundee.",50,90); g.drawString("If you use JalView, please cite:",50,110); g.drawString("\"Clamp, M., Cuff, J., Searle, S. M. and Barton, G. J. (2004), The Jalview Java Alignment Editor\"",50,130); } }