2014-12-09 11 views
1

this我有一个的JMenuBar和JToolBar中的JFrame。再就是使用MigLayout用15%和宽度的85%的2 JScrollPane中加入含有相应一个JTree &一个JPanel。有什么方法可以动态调整两个JScrollpanes的大小?任何人都可以请分享任何资源?这是我是如何做到的:如何使JScrollPane的可调整

package ui; 
import java.awt.Color; 
import java.awt.Dimension; 
import javax.swing.BorderFactory; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JToolBar; 
import javax.swing.JTree; 
import javax.swing.SwingConstants; 
import javax.swing.UIManager; 
import javax.swing.tree.DefaultMutableTreeNode; 
import com.jtattoo.plaf.aluminium.AluminiumLookAndFeel; 
import net.miginfocom.swing.MigLayout; 

public class MainFrameView 
{ 
    private JFrame workingFrame; 
    private JPanel footerPanel; 
    private JScrollPane leftScrollPane,rightScrollPane; 
    private JMenuBar mainMenuBar; 
    private JToolBar headerToolBar; 
    private JTree exploreTree; 

    public void createMainFrame() 
    { 

     workingFrame = new JFrame("Demo"); 
     workingFrame.setLayout(new MigLayout("","[grow]","[grow]")); 
     workingFrame.setJMenuBar(getMainMenuBar()); 
     workingFrame.add(getHeaderToolbar(),"dock north"); 
     workingFrame.add(getLeftScrollPane(),"dock west, width 15%!");   
     workingFrame.add(getRightScrollPane(),"dock east, width 85%!"); 
     workingFrame.setSize(940, 500); 
     workingFrame.setMinimumSize(new Dimension(700,400)); 
     workingFrame.setVisible(true); 
     workingFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    private JMenuBar getMainMenuBar() 
    { 
     mainMenuBar = new JMenuBar(); 
     mainMenuBar.setLayout(new MigLayout("inset 0")); 

     JMenu[] menu = new JMenu[5]; 
     for(int i=0;i<5;i++) 
     { 
      menu[i]=new JMenu("Menu-"+Integer.toString(i+1)); 
      menu[i].setHorizontalTextPosition(SwingConstants.CENTER); 
      menu[i].setVerticalTextPosition(SwingConstants.BOTTOM); 
      mainMenuBar.add(menu[i]); 
     } 
     return mainMenuBar; 
    } 

    private JToolBar getHeaderToolbar() 
    { 
     headerToolBar = new JToolBar(); 
     headerToolBar.setFloatable(false); 
     headerToolBar.setLayout(new MigLayout("inset 1px")); 
     headerToolBar.add(new JButton("B1")); 
     headerToolBar.add(new JButton("B2")); 
     headerToolBar.add(new JButton("B3")); 
     headerToolBar.add(new JButton("B4")); 
     headerToolBar.add(new JButton("B5")); 

     return headerToolBar; 
    } 

    private JScrollPane getLeftScrollPane() 
    { 
     leftScrollPane = new JScrollPane(getExploreTree()); 
     leftScrollPane.setOpaque(false); 
     leftScrollPane.getViewport().setOpaque(false); 
     leftScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
     leftScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
     return leftScrollPane; 
    } 


    private JTree getExploreTree() 
    { 
     DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Menu"); 

      DefaultMutableTreeNode firstNode = new DefaultMutableTreeNode("Node 1"); 
       firstNode.add(new DefaultMutableTreeNode("Sub Node 1")); 
       firstNode.add(new DefaultMutableTreeNode("Sub Node 2")); 
       firstNode.add(new DefaultMutableTreeNode("Sub Node 3")); 
       firstNode.add(new DefaultMutableTreeNode("Sub Node 4")); 
       firstNode.add(new DefaultMutableTreeNode("Sub Node 5")); 

      DefaultMutableTreeNode secondNode = new DefaultMutableTreeNode("Node2"); 
       secondNode.add(new DefaultMutableTreeNode("Sub Node 1")); 
       secondNode.add(new DefaultMutableTreeNode("Sub Node 2")); 
       secondNode.add(new DefaultMutableTreeNode("Sub Node 3")); 
       secondNode.add(new DefaultMutableTreeNode("Sub Node 4")); 
       secondNode.add(new DefaultMutableTreeNode("Sub Node 5")); 

      DefaultMutableTreeNode thirdNode = new DefaultMutableTreeNode("Node 3"); 
       thirdNode.add(new DefaultMutableTreeNode("Sub Node 1")); 
       thirdNode.add(new DefaultMutableTreeNode("Sub Node 2")); 
       thirdNode.add(new DefaultMutableTreeNode("Sub Node 3")); 
       thirdNode.add(new DefaultMutableTreeNode("Sub Node 4")); 
       thirdNode.add(new DefaultMutableTreeNode("Sub Node 5")); 

      DefaultMutableTreeNode fourthNode = new DefaultMutableTreeNode("Node4"); 
       fourthNode.add(new DefaultMutableTreeNode("Sub Node 1")); 
       fourthNode.add(new DefaultMutableTreeNode("Sub Node 2")); 
       fourthNode.add(new DefaultMutableTreeNode("Sub Node 3")); 
       fourthNode.add(new DefaultMutableTreeNode("Sub Node 4")); 
       fourthNode.add(new DefaultMutableTreeNode("Sub Node 5")); 

      DefaultMutableTreeNode fifthNode = new DefaultMutableTreeNode("Node 5"); 
       fifthNode.add(new DefaultMutableTreeNode("Sub Node 1")); 
       fifthNode.add(new DefaultMutableTreeNode("Sub Node 2")); 
       fifthNode.add(new DefaultMutableTreeNode("Sub Node 3")); 
       fifthNode.add(new DefaultMutableTreeNode("Sub Node 4")); 
       fifthNode.add(new DefaultMutableTreeNode("Sub Node 5")); 

      DefaultMutableTreeNode sixthNode = new DefaultMutableTreeNode("Node6"); 
       sixthNode.add(new DefaultMutableTreeNode("Sub Node 1")); 
       sixthNode.add(new DefaultMutableTreeNode("Sub Node 2")); 
       sixthNode.add(new DefaultMutableTreeNode("Sub Node 3")); 
       sixthNode.add(new DefaultMutableTreeNode("Sub Node 4")); 
       sixthNode.add(new DefaultMutableTreeNode("Sub Node 5"));  

      rootNode.add(firstNode); 
      rootNode.add(secondNode); 
      rootNode.add(thirdNode); 
      rootNode.add(fourthNode); 
      rootNode.add(fifthNode); 
      rootNode.add(sixthNode); 

     UIManager.put("Tree.rendererFillBackground", false); 
     exploreTree = new JTree(rootNode); 
     exploreTree.setOpaque(false); 
     exploreTree.setRootVisible(false); 
     return exploreTree; 
    } 


    private JScrollPane getRightScrollPane() 
    { 
     JPanel j = new JPanel(new MigLayout("width 1500px!, height 1500px!")); 
     j.setBackground(new Color(200,200,200)); 

     rightScrollPane = new JScrollPane(); 
     rightScrollPane.setViewportView(j); 
     rightScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
     rightScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
     return rightScrollPane; 
    } 
} 

回答