no me funciona el scroll
Publicado por ENARA (62 intervenciones) el 22/07/2007 14:22:43
Buenas,
Hago un gráfico que lo meto en un jpanel. El jpanel lo introduzco en un scroll pero no me funciona el scroll...
Os muestro el código. Igual es una chorrada pero no lo veo...
Espero vuestra ayuda y gracias de antemano...
EL PROBLEMA: Me muestra el panel del grafico pero al tener una leyenda con 45 elementos no se ve el grafico ni toda la leyenda entera por lo que decido poner un scroll pero no me funciona el scroll. No sé si ya es lo que estoy haciendo con el scroll lo que no funciona o se debe al panel del gráfico
PANEL CON EL GRÁFICO..................................................................................................................
public class PanelVentasPorTiposProductos extends JPanel{
BufferedImage grafica = null;
Border border1 = BorderFactory.createLineBorder(Color.orange, 2);
private int[] ventas;
public PanelVentasPorTiposProductos() {
ListaPedidos lp=ListaPedidos.obtListaPedidos();
ventas=lp.obtVentasPorTipoProducto();
// this.setSize(400,400); ???
this.setBorder(border1);
}
public BufferedImage creaImagen() {
ListaTiposProductos ltp=ListaTiposProductos.obtListaTiposProductos();
DefaultPieDataset juegoDatos= new DefaultPieDataset ();
int i=0;
while(i<45){
juegoDatos.setValue( ltp.obtProducto(i),ventas[i]);
i++;
}
JFreeChart chart = ChartFactory.createPieChart
("Ventas por Tipo de Producto",
juegoDatos,
true,// Show legend
true,
false
);
BufferedImage image = chart.createBufferedImage(300,300);
return image;
}
public void paint(java.awt.Graphics g) {
if(grafica == null)
{
grafica = this.creaImagen();
}
g.drawImage(grafica,0,0,null);
}
}
EL PANEL QUE TIENE EL SCROLL DONDE METER EL PANEL DEL GRÁFICO...................
(SIMPLIFICADO)
public class VentanaGraficos extends JPanel {
JPanel panelGrafico;
JScrollPane scrollPrincipal=new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
public VentanaGraficos() {
this.setBounds(350,50,758,428);
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(null);
panelGrafico=new PanelVentasPorTiposProductos();
scrollPrincipal.setViewportView(panelGrafico);
scrollPrincipal.setBounds(new Rectangle(350, 5, 400, 400));
this.add(scrollPrincipal);
}
EL JPANEL QUE RECOGE LA VENTANA DE GRAFICOS...............................................................
(SIMPLIFICADO)
public class EspacioDatosEstadisticosJefe{
VentanaGraficos vg=new VentanaGraficos();
private EspacioDatosEstadisticosJefe() {
panel.add(vg,BorderLayout.CENTER);
}
}
LA VENTANA QUE LO MUESTRA....................................................................................................
(SIMPLIFICADO)
public class VentanaQueDeseaHacer extends{
}
Hago un gráfico que lo meto en un jpanel. El jpanel lo introduzco en un scroll pero no me funciona el scroll...
Os muestro el código. Igual es una chorrada pero no lo veo...
Espero vuestra ayuda y gracias de antemano...
EL PROBLEMA: Me muestra el panel del grafico pero al tener una leyenda con 45 elementos no se ve el grafico ni toda la leyenda entera por lo que decido poner un scroll pero no me funciona el scroll. No sé si ya es lo que estoy haciendo con el scroll lo que no funciona o se debe al panel del gráfico
PANEL CON EL GRÁFICO..................................................................................................................
public class PanelVentasPorTiposProductos extends JPanel{
BufferedImage grafica = null;
Border border1 = BorderFactory.createLineBorder(Color.orange, 2);
private int[] ventas;
public PanelVentasPorTiposProductos() {
ListaPedidos lp=ListaPedidos.obtListaPedidos();
ventas=lp.obtVentasPorTipoProducto();
// this.setSize(400,400); ???
this.setBorder(border1);
}
public BufferedImage creaImagen() {
ListaTiposProductos ltp=ListaTiposProductos.obtListaTiposProductos();
DefaultPieDataset juegoDatos= new DefaultPieDataset ();
int i=0;
while(i<45){
juegoDatos.setValue( ltp.obtProducto(i),ventas[i]);
i++;
}
JFreeChart chart = ChartFactory.createPieChart
("Ventas por Tipo de Producto",
juegoDatos,
true,// Show legend
true,
false
);
BufferedImage image = chart.createBufferedImage(300,300);
return image;
}
public void paint(java.awt.Graphics g) {
if(grafica == null)
{
grafica = this.creaImagen();
}
g.drawImage(grafica,0,0,null);
}
}
EL PANEL QUE TIENE EL SCROLL DONDE METER EL PANEL DEL GRÁFICO...................
(SIMPLIFICADO)
public class VentanaGraficos extends JPanel {
JPanel panelGrafico;
JScrollPane scrollPrincipal=new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
public VentanaGraficos() {
this.setBounds(350,50,758,428);
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(null);
panelGrafico=new PanelVentasPorTiposProductos();
scrollPrincipal.setViewportView(panelGrafico);
scrollPrincipal.setBounds(new Rectangle(350, 5, 400, 400));
this.add(scrollPrincipal);
}
EL JPANEL QUE RECOGE LA VENTANA DE GRAFICOS...............................................................
(SIMPLIFICADO)
public class EspacioDatosEstadisticosJefe{
VentanaGraficos vg=new VentanaGraficos();
private EspacioDatosEstadisticosJefe() {
panel.add(vg,BorderLayout.CENTER);
}
}
LA VENTANA QUE LO MUESTRA....................................................................................................
(SIMPLIFICADO)
public class VentanaQueDeseaHacer extends{
}
Valora esta pregunta


0