解决方法:

主要是使用JPanel的setPreferredSize方法进行首选大小的设置,同时保证宽高大于JScrollPane的宽高

例如:

import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.*;

public class JScrollPaneAndJPanel extends JFrame {
 public JScrollPaneAndJPanel() {
  super("TestJScrollPane");
  this.setLayout(null);
  this.setBounds(200, 200, 300, 300);
  JPanel panel = new JPanel();
  panel.setPreferredSize(new Dimension(200,100));//主要是这句代码,设置panel的首选大小,同时保证宽高大于JScrollPane的宽高,这样下面的JScrollPane才会出现滚动条
  JButton button1  = new JButton("1");  
  panel.add(button1);
  JButton button2  = new JButton("2");  
  panel.add(button2);
  JButton button3  = new JButton("3");  
  panel.add(button3);
  JButton button4  = new JButton("4");  
  panel.add(button4);
  JButton button5  = new JButton("5");  
  panel.add(button5);
  JButton button6  = new JButton("6");  
  panel.add(button6);
  JButton button7  = new JButton("7");  
  panel.add(button7);
  JScrollPane scrollPane = new JScrollPane(panel);
  scrollPane.setBounds(10, 10, 175, 70);
  this.getContentPane().add(scrollPane);
  this.setVisible(true);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 }
 public static void main(String[] args) {
  new JScrollPaneAndJPanel();
 }
}

posted on 2012-03-21 23:21  aparche  阅读(14884)  评论(1编辑  收藏  举报