JScrollPaneを使って画像を表示する

戻る



::::::::::::::
MyPanel.java
::::::::::::::
import java.awt.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.awt.geom.*;
import java.awt.image.*;

import javax.imageio.*;

import javax.swing.event.*;
import javax.swing.*;
import javax.swing.border.*;

import java.io.*;

/**
* $Id: JScrollPane.html,v 1.1 2009/06/22 16:11:48 kishi Exp kishi $
* @author KISHI Yasuhiro
*/

public class MyPanel extends JPanel {

    private final String imagePath = "./bLayer.jpg";
    private BufferedImage image = null;

    public MyPanel() {
        super();

        try {
            image = ImageIO.read( new File( imagePath ) );

        } catch ( IOException ex ) {
            ex.printStackTrace();
        }
        System.out.println( image.getWidth() );
        System.out.println( image.getHeight() );

        if ( image != null ) {
            setPreferredSize( new Dimension( image.getWidth(), image.getHeight() ) );
        }

    }

    public void paintComponent( Graphics g ) {

        if ( image != null ) {
            g.drawImage( image, 0, 0, this );
        }

    }

}
::::::::::::::
Proto2.java
::::::::::::::
import java.awt.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.awt.geom.*;
import java.awt.image.*;

import javax.imageio.*;

import javax.swing.event.*;
import javax.swing.*;
import javax.swing.border.*;

import java.io.*;

/**
* $Id: JScrollPane.html,v 1.1 2009/06/22 16:11:48 kishi Exp kishi $
* @author KISHI Yasuhiro
*/

public class Proto2 extends JFrame {

    public Proto2() {
        super( "スクロール可能なペインに背景画像を配置する" );

        setBounds( 0, 0, 480, 320 );

        setLayout( new FlowLayout() );

        try {
            // 外観を設定します
            UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" );
            // 外観を変更します
            SwingUtilities.updateComponentTreeUI( this );
        } catch ( Exception e ) {
            e.printStackTrace();
            System.exit( -1 );
        }

        setBackground( Color.white );

        MyPanel panel = new MyPanel();

        JScrollPane sPane = new JScrollPane();
        sPane.getViewport().setView( panel );
        sPane.setPreferredSize( new Dimension( 384, 256 ) );

        Container container = getContentPane();
        container.add( sPane );

        setVisible( true );
        //pack();

        addWindowListener( new WindowAdapter() {
                               public void windowClosing( WindowEvent event ) {
                                   dispose();
                                   System.exit( 0 );
                               }
                           }
                         );

    }

    public static void main( String[] args ) {

        new Proto2();
    }

}
戻る inserted by FC2 system