/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Problemer med scrollbar og JPanel der tegn~
Fra : Simon[2700]


Dato : 14-10-05 11:23

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();
}
});
}
}





 
 
Simon [2700] (17-10-2005)
Kommentar
Fra : Simon [2700]


Dato : 17-10-05 13:46

løst ved at tegne en stor firkant som baggrund på hele tegnefladen, troede
ikke det var så simpelt :)
-Simon



Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407944
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste