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个面板的内容有点多。但是添加后一直没效果。 然后我觉得 应该无法添加吧??因为我把界面缩小后,并不是下面的被盖住了,而是里面的面板组件都同时缩小了。我只想要个正常点的 滚动条
怎么添加啊,各种办法都试过了
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);
panel.add(scrollPane, BorderLayout.CENTER);