类似下面的代码,我需要让它在即使只有一个“a”的时候也能滚动(这好像有点象Excel)import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JScrollPane1 implements ActionListener
{
    JScrollPane scrollPane;
    
    public JScrollPane1()
    {
        JFrame f = new JFrame("JScrollPaneDemo");
        Container contentPane = f.getContentPane();
        
        //JLabel label1 = new JLabel(new ImageIcon(".\\icons\\flower.jpg"));
        JLabel label1 = new JLabel("aaa");
        JPanel panel1 = new JPanel();
        panel1.add(label1);
        scrollPane = new JScrollPane(panel1);
        
        JPanel panel2 = new JPanel(new GridLayout(3,1));
        JButton b = new JButton("显示水平滚动轴");
        b.addActionListener(this);
        panel2.add(b);
        b = new JButton("不显示水平滚动轴");
        b.addActionListener(this);
        panel2.add(b);
        b = new JButton("适时显示水平滚动轴");
        b.addActionListener(this);
        panel2.add(b);
        
        contentPane.add(panel2,BorderLayout.WEST);
        contentPane.add(scrollPane,BorderLayout.CENTER);
        
        f.setSize(new Dimension(350,220));
        f.show();
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                    System.exit(0);
            }
        });
    }
    
    public void actionPerformed(ActionEvent e)
    {
        if (e.getActionCommand().equals("显示水平滚动轴"))
            scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        if (e.getActionCommand().equals("不显示水平滚动轴"))
            scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        if (e.getActionCommand().equals("适时显示水平滚动轴"))
            scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scrollPane.revalidate();
    }
    public static void main(String[] arg)
    {
        new JScrollPane1();
    }
}

解决方案 »

  1.   

    JList的滚动内容并不是组件本身。
      

  2.   

    package test;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;public class MainForm {
      public static void main(String[] arg)
      {
          JFrame  frame=new JScrollPane1();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          
          frame.setVisible(true);
       }}
     class JScrollPane1 extends JFrame implements ActionListener
    {
        JScrollPane scrollPane;    public JScrollPane1()
        {
    //        JFrame f = new JFrame("JScrollPaneDemo");
    //        Container contentPane = f.getContentPane();        //JLabel label1 = new JLabel(new ImageIcon(".\\icons\\flower.jpg"));
            JLabel label1 = new JLabel("a");
            JPanel panel1 = new JPanel();
            panel1.add(label1);
            scrollPane = new JScrollPane(panel1);        JPanel panel2 = new JPanel(new GridLayout(3,1));
            JButton b = new JButton("显示水平滚动轴");
            b.addActionListener(this);
            panel2.add(b);
            b = new JButton("不显示水平滚动轴");
            b.addActionListener(this);
            panel2.add(b);
            b = new JButton("适时显示水平滚动轴");
            b.addActionListener(this);
            panel2.add(b);        add(panel2,BorderLayout.WEST);
            add(scrollPane,BorderLayout.CENTER);        setSize(new Dimension(350,220));
            addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                        System.exit(0);
                }
            });
        }    public void actionPerformed(ActionEvent e)
        {
            if (e.getActionCommand().equals("显示水平滚动轴"))
                scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
            if (e.getActionCommand().equals("不显示水平滚动轴"))
                scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            if (e.getActionCommand().equals("适时显示水平滚动轴"))
                scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
            scrollPane.revalidate();
        }
        public static void main(String[] arg)
        {
            new JScrollPane1();
        }
    }
    长度不够 JSCROLLPANE不滚动 这是很正常的情况 如果有滚动条 那么他又没东西滚出来,也失去了意义
      

  3.   

    本来java里的这个类是这样设计的!!
    如果看得到也得用的话真的如上楼所说的失去意义了!!