Ik wil een plaatje weergeven in een JScrollPane. Wanneer dat plaatje groter is dan het JScrollPane, dan wordt de 'rest' van het plaatje buiten het JScrollPane weergegeven, in plaats van dat je het kan scrollen.
Plaatjes worden weergegeven op een canvas:
Uit het frame waar alles in komt:
Code om een plaatje weer te geven:
Ik heb vanalles lopen kloten, maar ik kom er niet uit.
Plaatjes worden weergegeven op een canvas:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| package comicreader;
import java.awt.*;
public class PicCanvas extends Canvas
{
protected Image image;
public PicCanvas()
{
setSize(1,1);
}
public PicCanvas(Image image)
{
setImage(image);
}
public void setImage(Image image)
{
MediaTracker mt = new MediaTracker(this);
mt.addImage(image, 0);
try
{
mt.waitForID(0);
}
catch(Exception _ex) { }
this.image = image;
}
public Image getImage()
{
return image;
}
public void paint(Graphics g)
{
try
{
this.setBackground(new Color(255,255,255));
this.resize(image.getWidth(this),image.getHeight(this));
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);
}
catch(Exception ex) { }
}
public void update(Graphics g)
{
paint(g);
}
} |
Uit het frame waar alles in komt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| ... contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(null); ... comiccanvas = new PicCanvas(); comiccanvas.setBounds(1,1,1,1); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); scrollpane = new JScrollPane(comiccanvas); scrollpane.setBorder(BorderFactory.createLineBorder(Color.black)); scrollpane.setBounds(10,130,this.getWidth()-30,this.getHeight()-160); contentPane.add(scrollpane); ... |
Code om een plaatje weer te geven:
code:
1
2
3
4
5
| ... Image image = getToolkit().getImage(file.toString()); comiccanvas.setImage(image); comiccanvas.repaint(); ... |
Ik heb vanalles lopen kloten, maar ik kom er niet uit.