我有一个Java applet来绘制一个数组(仅仅是一些矩形一个接一个地排列)。
当用户选择创建大小为n的数组时,它将绘制n个连接在一起的矩形。当n变得更大时,图形变得更大,但由于我使用JPanel来绘制数组,而且JPanel不会滚动,所以我必须将该JPanel添加到JScrollPane中,但仍然无法滚动。用户只能看到整个数组的一部分。
有人可以给我一些帮助吗?
这是我的代码:
当用户选择创建大小为n的数组时,它将绘制n个连接在一起的矩形。当n变得更大时,图形变得更大,但由于我使用JPanel来绘制数组,而且JPanel不会滚动,所以我必须将该JPanel添加到JScrollPane中,但仍然无法滚动。用户只能看到整个数组的一部分。
有人可以给我一些帮助吗?
这是我的代码:
public class ArrayPanel extends JPanel {
....
public void paintComponent(Graphics g) {
...draw array here..
// I wish to get the updated size of the graphis here,
// then i can reset the preferredSize()....?
System.out.println("width=" + getWidth() + " height=" + getHeight());
}
}
public class ArrayDemo extends JPanel {
public ArrayDemo() {
super(new BorderLayout());
arrayPanel = new ArrayPanel();
arrayPanel.setPreferredSize(new Dimension(400, 300));
JScrollPane container = new JScrollPane(arrayPanel,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
container.setPreferredSize(arrayPanel.getPreferredSize());
add(container, BorderLayout.CENTER);
...
}
}