| Hej,
 
 Jeg har lidt problemer med et JPanel jeg tegner på og en scrollbar, hver
 gang jeg scroller,
 har får jeg grafisk "hukommelse" i siderne, eller i toppen og bunden hvis
 jeg scroller den vej. Jeg har ledt en del på google efter andre
 løsningsmetoder til tilføjelse af scrollbaren, men fandt ikke noget.
 Jeg kunne forestille mig jeg skulle tvinge paint metoden til at køre efter
 en scroll, men hvordan ved jeg hvornår det er ? synes ikke jeg kunne finde
 noget om en action listener på en scrollbar ?  Er der en anden metode der
 kunne bruges evt ?
 
 klasserne er (lidt forenklet) forneden
 På forhånd tak
 -Simon
 
 
 public class GFX extends JPanel
 {
 
 public GFX() {}
 
 public void paint(Graphics _g)
 {
 _g.setColor(Color.red);
 _g.drawArc(100,100,2*50,2*50,90,180);
 }
 }
 
 
 public class Frame1  extends JFrame
 {
 JPanel contentPane;
 BorderLayout borderLayout1 = new BorderLayout();
 
 public Frame1() {
 try {
 setDefaultCloseOperation(EXIT_ON_CLOSE);
 jbInit();
 } catch (Exception exception) {
 exception.printStackTrace();
 }
 }
 
 private void jbInit() throws Exception {
 contentPane = (JPanel) getContentPane();
 contentPane.setLayout(borderLayout1);
 setSize(new Dimension(400, 300));
 
 JPanel gfx = new GFX();
 Dimension dim = new Dimension(500,500);
 gfx.setPreferredSize(dim);
 
 gfx.setLayout(new BoxLayout(gfx, BoxLayout.X_AXIS));
 JScrollPane scroll = new JScrollPane(gfx);
 
 contentPane.add(scroll);
 }
 }
 
 
 public class Application1 {
 boolean packFrame = false;
 
 /**
 * Construct and show the application.
 */
 public Application1() {
 Frame1 frame = new Frame1();
 // Validate frames that have preset sizes
 // Pack frames that have useful preferred size info, e.g. from their
 layout
 if (packFrame) {
 frame.pack();
 } else {
 frame.validate();
 }
 
 // Center the window
 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
 Dimension frameSize = frame.getSize();
 if (frameSize.height > screenSize.height) {
 frameSize.height = screenSize.height;
 }
 if (frameSize.width > screenSize.width) {
 frameSize.width = screenSize.width;
 }
 frame.setLocation((screenSize.width - frameSize.width) / 2,
 (screenSize.height - frameSize.height) / 2);
 frame.setVisible(true);
 }
 
 public static void main(String[] args) {
 SwingUtilities.invokeLater(new Runnable() {
 public void run() {
 try {
 UIManager.setLookAndFeel(UIManager.
 getSystemLookAndFeelClassName());
 } catch (Exception exception) {
 exception.printStackTrace();
 }
 
 new Application1();
 }
 });
 }
 }
 
 
 
 
 
 
 |