我只是无法做到这一点。我有一个滑块来增加我的 JPanel 的大小(用作画布来绘制)。
每当 JPanel 接收到事件时,我使用 setBounds() 调整它的大小,我可以看到它在瞬间调整大小,但是下一个 Paint 或其他东西将它切换回滑块的首选大小属性给出的原始大小。
public class ShapesMainFrame extends JFrame {
private PaintCanvas paintCanvas;
public ShapesMainFrame() {
[...]
JScrollPane scrollPane = new JScrollPane(paintCanvas);
scrollPane.setPreferredSize(new Dimension(1,600));
add(scrollPane, BorderLayout.CENTER);
pack();
}
}
public class PaintCanvas extends JPanel {
[...]
public void setScale(int value) {
setSize(1000,1000);
}
}
因此,当我尝试将 JPanel 的大小更改为较大的值时,它应该调整大小并且滚动条应该出现正确吗?好吧,它保持和我一开始设置的一样高 600 像素。