我要做一个JScrollPane,包含最多7个元素,但是我只要在较小的面板里显示其中两个,其他的通过滚动条实现,请哪位高手指点下,该怎么做,感激不尽。

解决方案 »

  1.   

    只要你的那兩個元件的大小加起來  等于  JScrollPane顯示的大小就行了   其他的不就只能滾動條 顯示了~~
      

  2.   

    但是JScrollPane太大了,我想设置小点,比如setSize(100,40),但是总不行。
      

  3.   

    那是你的布局管理器的問題 ~  你設置JScrollPane的大小    但是還要受到不據管理器的影響,比如你把JScrollPane放到剩余控件很大的一塊區域  即使你JScrollPane設置了大小  它還是會變形~
      

  4.   

    3楼正确
    setLayout(null)
    然后再setSize()行了
      

  5.   

    写了个小例子,楼主看看是不是这种效果package demo;import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GridLayout;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;public class DemoForJScrollPane extends JFrame { /**
     * Launch the application
     * @param args
     */
    public static void main(String args[]) {
    try {
    DemoForJScrollPane frame = new DemoForJScrollPane();
    frame.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
    } /**
     * Create the frame
     */
    public DemoForJScrollPane() {
    super();
    getContentPane().setLayout(null);
    setBounds(100, 100, 300, 300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(0, 0, 292, 266);
    getContentPane().add(scrollPane); final JPanel panel = new JPanel();
    panel.setLayout(new GridLayout(7, 1));
    scrollPane.setViewportView(panel); final JPanel panel_1 = new JPanel();
    panel_1.setBackground(new Color(255, 0, 0));
    panel_1.setPreferredSize(new Dimension(300, 100));
    panel_1.setLayout(null);
    panel.add(panel_1); final JLabel label = new JLabel();
    label.setText("面板1");
    label.setBounds(138, 31, 120, 30);
    panel_1.add(label);
    final JPanel panel_2 = new JPanel();
    panel_2.setBackground(new Color(255, 255, 128));
    panel.add(panel_2); final JLabel label_1 = new JLabel();
    label_1.setBackground(new Color(128, 255, 0));
    label_1.setText("面板2");
    panel_2.add(label_1); final JPanel panel_3 = new JPanel();
    panel_3.setBackground(new Color(128, 255, 0));
    panel.add(panel_3); final JLabel label_2 = new JLabel();
    label_2.setText("面版3");
    panel_3.add(label_2); final JPanel panel_4 = new JPanel();
    panel_4.setBackground(new Color(0, 0, 255));
    panel.add(panel_4); final JLabel label_3 = new JLabel();
    label_3.setText("面板4");
    panel_4.add(label_3); final JPanel panel_5 = new JPanel();
    panel_5.setBackground(new Color(255, 255, 255));
    panel.add(panel_5); final JLabel label_4 = new JLabel();
    label_4.setText("面板5");
    panel_5.add(label_4); final JPanel panel_6 = new JPanel();
    panel_6.setBackground(new Color(0, 0, 255));
    panel.add(panel_6); final JLabel label_5 = new JLabel();
    label_5.setText("面板6");
    panel_6.add(label_5); final JPanel panel_7 = new JPanel();
    panel_7.setBackground(new Color(0, 255, 255));
    panel.add(panel_7); final JLabel label_6 = new JLabel();
    label_6.setText("面板7");
    panel_7.add(label_6); }}