圣诞假期一直在做学期projet,毕竟元旦过后就要答辩。在想办法放大缩小画出的图形时,用到了JScrollPane。具体来说就是把画地图的JPanel添加到JScrollPane里,然后再把JScrollPane添加到JFrame里。具体代码如下:
JFrame frame = new JFrame();
frame.setBounds(10, 10, 1360, 760);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setJMenuBar(MenuBar.createJMenuBar());//菜单栏
frame.add(ToolBar.createToolBar(), BorderLayout.PAGE_START);//工具条
frame.setLocationRelativeTo(null);
//Icon
frame.setIconImage(Toolkit.getDefaultToolkit().getImage("Images/globe.png"));
//map
MapPanel map = new MapPanel();
//JScrollPane
JScrollPane jsp = new JScrollPane(map);
frame.add(jsp);
当放大地图时会出现滚动条,这时的滚动条是自动出现的,查了一些资料发现有三种设置滚动条的方法,分别是:自动出现,总是出现,总是隐藏。三种设置方法分别如下:
//分别设置水平和垂直滚动条自动出现
jsp.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jsp.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
//分别设置水平和垂直滚动条总是出现
jsp.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jsp.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
//分别设置水平和垂直滚动条总是隐藏
jsp.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jsp.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_NEVER);