Java - problema scrollbar y jframe, y problema refresco

   
Vista:

problema scrollbar y jframe, y problema refresco

Publicado por ayalo (4 intervenciones) el 16/11/2007 01:45:47
hola, el problema que tengo es que quiero ponerle scrollbars horizontal y vertical a un jframe.
El caso es que las barras las he puesto, pero no consigo que lo que pinto dentro del jframe mediante Grapchis g.drawLine o Text, se me mueva a la vez que muevo las barras.
El codigo que he hecho para esto es:
public class ScrollBarExample extends JPanel{

JLabel label;
JScrollBar hbar,vbar;
// JScrollBar hbar;
public ScrollBarExample() {
super(true);
label=new JLabel();
setLayout(new BorderLayout());

hbar = new JScrollBar(
JScrollBar.HORIZONTAL, 30, 20, 0, 300);
vbar = new JScrollBar(
JScrollBar.VERTICAL, 30, 40, 0, 300);

hbar.setUnitIncrement(20);
hbar.setBlockIncrement(10);

hbar.addAdjustmentListener(new hbarMyAdjustmentListener());
vbar.addAdjustmentListener(new vbarMyAdjustmentListener());


add(hbar, BorderLayout.SOUTH);
add(vbar, BorderLayout.EAST);
add(label, BorderLayout.CENTER);
}

class hbarMyAdjustmentListener extends JPanel implements AdjustmentListener {
public void adjustmentValueChanged(AdjustmentEvent e) {
// label.setText(" New Value is " + e.getValue() + " ");
// System.out.println(" Estoy en Ejemplo ");
;
double value = hbar.getValue();

double maximumValue = hbar.getMaximum();

double newX = (value * super.getWidth() / maximumValue);

super.setAlignmentX((int)newX);
repaint();
}
}
class vbarMyAdjustmentListener extends JPanel implements AdjustmentListener {
public void adjustmentValueChanged(AdjustmentEvent e) {
// label.setText(" New Value is " + e.getValue() + " ");
// System.out.println(" Estoy en Ejemplo ");
;
double value = vbar.getValue();

double maximumValue = vbar.getMaximum();

double newX = (value * super.getWidth() / maximumValue);
super.setAlignmentX((int)newX);
repaint();
}
}

// creo que el problema puede estar en que debo de capturar del jframe el panel que contiene mediante ContentPane, pero no se como hacerlo. Alguna idea??


El otro problema que tengo es que pinto dentro de este mismo jframe un jpanel, con unas etiquetas dentro que quiero ir actualizando, es decir , ir cambiando su valor.
Pero cada vez que hago que este cambie, lo unico que consigo es que se me concatene el valor anterior de la etiqueta con el actual.
Tengo problemas con la clase paint(), pq lo que habia intentado antes era pintar un jpanel cada vez con un valor de estas etiquetas, pero no conseguia borrar el jpanel anterior.

¿Como podria hacerlo?

Muchas gracias por todo.
un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder