我有一个JFrame,在它里面我有一个JPanel,我在这个面板上进行了绘制,这个面板可以是任何大小,因此我将它放置到了JScrollPane中,以便在面板大于窗口屏幕尺寸时进行滚动。
不幸的是,它并没有像我期望的那样工作:
当JFrame窗口小于JPanel大小时,不显示滚动条
JScrollPane现在的大小似乎被锁定为我添加到它上面的JPanel的大小,而之前它会调整为它的JFrame窗口的边界(虽然现在它只在垂直方向上这样做?!)
无论我设置什么首选大小,JPanel似乎都会默认使用JScrollPane的大小
我相信我在做一些愚蠢的事情,如果有人能指出来,我会非常感激!
JPanel imageCanvas = new JPanel(); // 'Canvas' to draw on
JScrollPane scrollPane = new JScrollPane();
// set size of 'canvas'
imageCanvas.setMinimumSize(new Dimension(100,100));
// Scroll pane smaller then the size of the canvas so we should get scroll bars right?
scrollPane.setMinimumSize(new Dimension(50,50));
// Add a border to 'canvas'
imageCanvas.setBorder(BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
scrollPane.setViewportView(imageCanvas);