Scroll em um JFrame

5 respostas
oitathi

Olá, eu gostaria de saber como eu faço, se por exemplo, eu adicionar uma imagem de 400 px num JFrame de tamanho 200 px. Como eu faço para esse JFrame ter um scroll na horizontal para q eu veja a imagem até o final?

Obrigada

5 Respostas

juno.rr

Mais ou menos assim:

JPanel panel; //painel com a imagem
JFrame frame;

//inicializações ...

frame.add(new JScrollPane(panel));
oitathi

eu fiz assim:

JFrame frame;
frame= new JFrame("Desenhando linhas, retangulos e ovais");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
Image image = new Image();
image.setBackground(Color.WHITE);
panel.add(image);
frame.add(new JScrollPane(panel));
frame.setSize(200,210);
frame.setVisible(true);

soh q num funcionou

ViniGodoy

O construtor “new Image” cria uma imagem vazia. E imagens assim tem tamanho 0, portanto, não precisam de scrollbars.

Também é uma boa conferir se o preferredSize do seu JPanel tem o tamanho da imagem.

juno.rr

Vc não pode adicionar um objeto Image à um JPanel.
Existem três opções aqui:

  1. Implementar um JPanel para desenhar a imagem que vc quer;
  2. Definir a imagem em JLabel, porém terá dificuldades em relação à dimensões;
  3. Utilizar o JXPanel do pacote SwingX;

Implementar o panel é facil, basta sobrescrever o método paintComponent:

ImagePanel extends JPanel {
  private Image img;

  public ImagePanel(Image img) {
    this.img = img;
  }

  protected void paintComponent(Graphics g) {
    super();
    Dimension d = this.getPreferredSize();
    g.drawImage(img, 0, 0, d.width, d.height, null);
  }
}
oitathi

image eh minha classe… eu sei q cometi um erro em nomear uma classe q eu criei de image
=(

Criado 17 de agosto de 2010
Ultima resposta 17 de ago. de 2010
Respostas 5
Participantes 3