Programación en castellano
Inicio > Foros > Java (básico) > Colocar un JPanel en un JScrollPane
-Foros de debate

Java (básico)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Colocar un JPanel en un JScrollPane
Enviado por Isabel el día 19 de agosto de 2004

Hola a todos, llevo una semana intentando colocar un JPanel en un JScrollPane y no me funciona, mi programa es como el siguiente. Si alguien puede ayudarme!!!!!

import java.awt.*;
import javax.swing.*;
public class ventana {

public static void main(String[] args) {
JFrame frame = new frame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
frame.setVisible(true);
}
}
class frame extends JFrame {
MiPanel panel;
frame (){
setSize(300,300);
panel = new MiPanel();
JScrollPane barras = new JScrollPane(panel);
barras.getViewport().setView(panel);
barras.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
barras.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Container contenedor = getContentPane();
contenedor.add(barras);
}
}
class MiPanel extends JPanel {
MiPanel(){
setLayout(new BoxLayout(this,BoxLayout.LINE_AXIS));
setMaximumSize(new Dimension(300, 300));
setMinimumSize(new Dimension(0, 0));
}
public void paintComponent(Graphics g){
super.paintComponent(g);
setLayout(null);
g.drawRect(50,50,350,350);
revalidate();
}
}

 
Re: Colocar un JPanel en un JScrollPane
Enviado por metano el día 20 de agosto de 2004

HOLA ISABEL TU PROBLEMA ES QUE PROGRAMAS MUY DESORDENADO TE ACONSEJO QUE DEJES EL MAIN DE ULTIMO HAY TE MANDO UN EJEMPLO:

import java.awt.*;
import javax.swing.*;


public class ventana extends JFrame
{


public ventana()
{

JPanel p= new JPanel();
p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS));
JTextArea ta=new JTextArea("PUEDES COLOCAR LOS COMPONENTES QUE QUIERAS",60,60);
JButton g=new JButton("es un boton");
JButton h=new JButton("otro boton");

p.add(g);
p.add(ta);
p.add(h);
JScrollPane sc = new JScrollPane(p);

sc.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
sc.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
getContentPane().add(sc);

}


public static void main(String[] args)
{
ventana frame = new ventana();
frame.setTitle("UN JPanel DENTRO DE UN JScrollPane");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600,300);
frame.setVisible(true);
}
}

UN SALUDO!

 
Re: Re: Colocar un JPanel en un JScrollPane
Enviado por Isabel el día 20 de agosto de 2004

Muchas gracias por contestarme, la verdad es que tu programa si que me funciona, pero al hacer un pequeño cambio,(dibujar en el panel), las barras me dejan de funcionar, sabes cual es la razon?

 

Re: Re: Colocar un JPanel en un JScrollPane
Enviado por Faur el día 16 de marzo de 2008

Hola. Yo tengo el mismo problema.
Estoy desarrollando con netBeans una aplicación que dentro de la ventana principal quiero que tenga 3 paneles (JScrollPane), dónde iré añadiendo contenidos dinámicamente. Lo más curioso es que haciendo una prueba previa todo me funcionó bien, pero en la versión "definitiva" hago lo mismo pero nada que no se me cargan las cosas en los JScrollPane. Os dejo el código

public class JFVentana extends java.awt.Frame {

JPEntrada entrada; /*JPEntrada extends JPanel*/
JPSalida salida; /*JPSalidada extends JPanel*/
JPEntrada reloj; /*JPEntrada extends JPanel*/

/** Creates new form JFVentana */
public JFVentana() {
initComponents();
this.setTitle("Utrilla's Moore's Automatom Simulator v0.0");

this.entrada = new JPEntrada();
this.salida = new JPSalida();
this.reloj = new JPEntrada();

this.pEntradas.add(entrada);
this.pSalidas.add(salida);
this.pReloj.add(reloj);
reloj.setVisible(true);
salida.setVisible(true);
entrada.setVisible(true);


}

...

}


ESTE ES EL CÓDIGO DE LA VERSIÓN DE PREUBA

public class JFVentana extends java.awt.Frame {

JPEntrada panel;

/** Creates new form JFVentana */
public JFVentana() {
initComponents();
panel = new JPEntrada();
this.pEntradas.add(panel);
panel.setVisible(true);

}
...
}

 
Re: Re: Re: Colocar un JPanel en un JScrollPane
Enviado por ozito el día 23 de marzo de 2008

Faur,

Para poder ayudarte deberías poner también el código de al menos una de las clases JPEntrada o JPSalida

 

Re: Re: Re: Colocar un JPanel en un JScrollPane
Enviado por ozito el día 23 de marzo de 2008

Isabel,

Lo que tienes que hacer es seleccionar el tamaño preferido del JPanel para que te salgan las barras de desplazamiento:

import java.awt.*;
import javax.swing.*;

class miPanel extends JPanel {
miPanel(){
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
setPreferredSize(new Dimension(600, 600));
setMaximumSize(new Dimension(600, 600));
setMinimumSize(new Dimension(0, 0));
}

public void paintComponent(Graphics g){
super.paintComponent(g);
setLayout(null);
g.drawRect(50,50,350,350);

revalidate();
}
}

 




Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados