Colocar un JPanel en un JScrollPane

Isabel
03 de Diciembre del 2008
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();
}
}

metano
03 de Diciembre del 2008
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!

Faur
03 de Diciembre del 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);

}
...
}