JScrollPane en una imagen

JuanmaX
13 de Junio del 2005
estoy intentando poner un Scroll en una foto para moverla al ser mayor q la pantalla y no caber entera, el problema es q no sale el scroll, e de implementarlo así, no puedo usar ImageIcon.... Aqui les daso el codigo fuente espero q se les ocurra algo y me echen un cable

import javax.swing.*;
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;

public class jscrol extends JFrame {

private static Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

public jscrol (){
super("Imagen");
fondo f = new fondo();

getContentPane().add(f, BorderLayout.CENTER);
setSize(d.width, d.height-30);
setVisible(true);

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {


dispose();
System.exit(0);}


});
}


public static void main(String args[]) {
new jscrol();

}


};


class fondo extends JPanel {

Image imagen;
int ancho, alto;
JScrollPane scroll = new JScrollPane(this);

public fondo(){

imagen = Toolkit.getDefaultToolkit().getImage("annakorn_21_1024.jpg");
try { //Esperamos hasta q la magen sea cargada para poder coger su anchura y altura
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(imagen, 0);
tracker.waitForID(0);
}catch (Exception e) {e.printStackTrace();}


ancho = imagen.getWidth( this ); //recogemos datos de la iamgen
alto = imagen.getHeight( this );

scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
}

public void paint(Graphics g) {




setSize(ancho, alto);
g.drawImage( imagen,0,0,getWidth(),getHeight(),this );}


};

JuanmaX
13 de Junio del 2005
e cambiado el codigo:

import javax.swing.*;
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;

public class jscrol extends JFrame {

private static Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

public jscrol (){
super("Imagen");
fondo f = new fondo();
JScrollPane scroll = new JScrollPane(f);
getContentPane().add(scroll, BorderLayout.CENTER);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
setSize(d.width, d.height-30);
setVisible(true);

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {


dispose();
System.exit(0);}


});
}


public static void main(String args[]) {
new jscrol();

}


};


class fondo extends JPanel {

Image imagen;
int ancho, alto;


public fondo(){

imagen = Toolkit.getDefaultToolkit().getImage("annakorn_21_1024.jpg");
try { //Esperamos hasta q la magen sea cargada para poder coger su anchura y altura
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(imagen, 0);
tracker.waitForID(0);
}catch (Exception e) {e.printStackTrace();}


ancho = imagen.getWidth( this ); //recogemos datos de la iamgen
alto = imagen.getHeight( this );

//scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
}

public void paint(Graphics g) {




setSize(ancho, alto);
g.drawImage( imagen,0,0,getWidth(),getHeight(),this );}


};


Ahora aparecen los scroll pero no hacen nada!!