import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;public class oneframe extends JFrame {

public static void main(String[] args) {
oneframe of= new oneframe();
of.showframe1();
}
            
 private JLabel label[] ;      
 private JTextArea t1,t2,t3,t4;

public oneframe(){
super();

label=new JLabel[30];
t1=new JTextArea();
t2=new JTextArea();
t3=new JTextArea();
t4=new JTextArea();

label[0]=new JLabel("集合框架",JLabel.CENTER);
label[0].setFont(new Font("Serif",Font.PLAIN,45));
label[1]=new JLabel("爱情公寓");
label[1].setFont(new Font("Serif",Font.PLAIN,25));
label[1].setForeground(Color.red);

label[2]=new JLabel("电视:");
    label[3]=new JLabel("关谷");
    label[4]=new JLabel("胡一菲");
    label[5]=new JLabel("曾小贤");
    for(int i=2;i<=5;i++){
     label[i].setFont(new Font("bingzheng",Font.PLAIN,20));
     }
label[7]=new JLabel("数码");
label[7].setFont(new Font("Serif",Font.PLAIN,25));
label[7].setForeground(Color.red);
label[8]=new JLabel("是:");
label[9]=new JLabel("手机");
label[10]=new JLabel("平板");
label[11]=new JLabel("电脑");
for(int i=8;i<=11;i++){
     label[i].setFont(new Font("bingzheng",Font.PLAIN,20));
     }

label[12]=new JLabel("小时候");
label[12].setFont(new Font("Serif",Font.PLAIN,25));
label[12].setForeground(Color.red);
label[13]=new JLabel("喜欢");
label[14]=new JLabel("糖葫芦");
    label[15]=new JLabel("狗不理");
    for(int i=13;i<=15;i++){
     label[i].setFont(new Font("bingzheng",Font.PLAIN,20));
     }
    
label[16]=new JLabel("面粉");
label[16].setFont(new Font("Serif",Font.PLAIN,25));
label[16].setForeground(Color.red);
label[17]=new JLabel("代表:");
    label[18]=new JLabel("馒头");
    label[19]=new JLabel("湾仔码头");
    label[20]=new JLabel("AWT");
    for(int i=17;i<=20;i++){
     label[i].setFont(new Font("bingzheng",Font.PLAIN,20));
     }

    t1=new JTextArea("它以抽象窗口工具包(AWT)为基础使跨平台应用程序\n" +
             "可以使用任何可插拔的外观风格。Swing开发人员只用很少\n" +
             "的代码就可以利用Swing丰富");
    t1.setEditable(false);
    t2=new JTextArea("它以抽象窗口工具包(AWT)为基础使跨平台应用程序\n" +
             "可以使用任何可插拔的外观风格。Swing开发人员只用很少\n" +
             "的代码就可以利用Swing丰富");
    t2.setEditable(false);     
    t3=new JTextArea("它以抽象窗口工具包(AWT)为基础使跨平台应用程序\n" +
             "可以使用任何可插拔的外观风格。Swing开发人员只用很少\n" +
             "的代码就可以利用Swing丰富");
    t3.setEditable(false);
    t4=new JTextArea("Swing是一个用于开发Java应用程序用户界面的开发工具\n" +
             "包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序\n" +
             "可以使用任何可插拔的外观风格。Swing开发人员只用很少\n" +
             "的代码就可以利用Swing丰富、灵活的功能和模块化组件来\n" +
             "创建优雅的用户界面。 ");
    t4.setEditable(false);
    
}
public void showframe1(){

Container c= this.getContentPane();
JPanel top=new JPanel();                     //North 窗口
top.setLayout(new BorderLayout());
top.add(label[0],"Center");

JPanel flow[]=new JPanel[4];
JPanel flowSouth[]=new JPanel[4];

flowSouth[0]=new JPanel();
flow[0]=new JPanel();
flowSouth[0].setLayout(new FlowLayout(FlowLayout.LEFT));
for(int i=1;i<6;i++)
flowSouth[0].add(label[i]);
flow[0].setLayout(new BorderLayout());
flow[0].add(label[1],"North");
flow[0].add(t1,"Center");
flow[0].add(flowSouth[0],"South");

flowSouth[1]=new JPanel();
flow[1]=new JPanel();
flowSouth[1].setLayout(new FlowLayout(FlowLayout.LEFT));
for(int i=8;i<12;i++)
flowSouth[1].add(label[i]);
flow[1].setLayout(new BorderLayout());
flow[1].add(label[7],"North");
flow[1].add(t2,"Center");
flow[1].add(flowSouth[1],"South"); 

flowSouth[2]=new JPanel();
flow[2]=new JPanel();
flowSouth[2].setLayout(new FlowLayout(FlowLayout.LEFT));
for(int i=13;i<16;i++)
flowSouth[2].add(label[i]);
flow[2].setLayout(new BorderLayout());
flow[2].add(label[12],"North");
flow[2].add(t3,"Center");
flow[2].add(flowSouth[2],"South");

flowSouth[3]=new JPanel();
flow[3]=new JPanel();
flowSouth[3].setLayout(new FlowLayout(FlowLayout.LEFT));
for(int i=17;i<=20;i++)
flowSouth[3].add(label[i]);
flow[3].setLayout(new BorderLayout());
flow[3].add(label[16],"North");
flow[3].add(t4,"Center");
flow[3].add(flowSouth[3],"South");

JPanel center=new JPanel();
JScrollPane js=new JScrollPane();
center.setLayout(new GridLayout(4,1,10,10));
for(int i=0;i<4;i++)
center.add(flow[i]);
// js.getViewport().add(center).isVisible();
                        center.getContentPane().add(js);                      //滚动条
    c.add(top,BorderLayout.NORTH);
c.add(center,BorderLayout.CENTER);

this.setTitle("英文篇幅");
this.setSize(670, 670);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
    
} }大致意思是有一个JFrame   里面有6个JPanel .分别为ABCDEF
然后JFrame用BorderLayout布局,A在North位置 B再Center位置
然后把CDEF 4个面板放在B中按GridLayout(4,1)。  其实就是竖着放 。我想给B添加滚动条。 因为CDEF4个面板的内容有点多。但是添加后一直没效果。 然后我觉得 应该无法添加吧??因为我把界面缩小后,并不是下面的被盖住了,而是里面的面板组件都同时缩小了。我只想要个正常点的 滚动条
怎么添加啊,各种办法都试过了

解决方案 »

  1.   

    JPanel center=new JPanel();
                JScrollPane js=new JScrollPane();
                center.setLayout(new GridLayout(4,1,10,10));
                for(int i=0;i<4;i++)
                center.add(flow[i]);
            //    js.getViewport().add(center).isVisible();
                            center.getContentPane().add(js);                      //滚动条
                c.add(top,BorderLayout.NORTH);
                c.add(center,BorderLayout.CENTER);
    修改成
    JPanel center=new JPanel();
                JScrollPane js=new JScrollPane(center);
                center.setLayout(new GridLayout(4,1,10,10));
                for(int i=0;i<4;i++)
                center.add(flow[i]);
            //    js.getViewport().add(center).isVisible();
            //                center.getContentPane().add(js);                      //滚动条
                c.add(top,BorderLayout.NORTH);
                c.add(js,BorderLayout.CENTER);
      

  2.   

    学这干什么,如果你要走android,还可以。这知识,工作用不到的、
      

  3.   

    你先加滚动条 然后加Pnl容器
      

  4.   

    将你的容器作为滚动条实例化的参数。然后再add。JScrollPane scrollPane = new JScrollPane(table);
    panel.add(scrollPane, BorderLayout.CENTER);