当前位置: 代码迷 >> J2SE >> 一个布局有关问题
  详细解决方案

一个布局有关问题

热度:50   发布时间:2016-04-24 00:44:04.0
一个布局问题
我将一个JPanel添加到一个JScrollPane中,在设置JPanel的布局的时候,JPanel的组件不会自动换行?求分析问题出现在什么地方。代码如下:
//滚动面板__参数设置需要时添加滚动条
JScrollPane findStudentScrollPanel = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//面板大小
findStudentScrollPanel.setBounds((int)((WIDTH*0.04)/2),0,(int)(WIDTH*0.96), (int)(HEIGHT*0.15));
//添加组件的面板
JPanel myPanel = new JPanel();
myPanel.setLayout(new FlowLayout(FlowLayout.LEFT,250,5));
//组件准备
JLabel label1 = new JLabel("label1");
JLabel label2 = new JLabel("label2");
JLabel label3 = new JLabel("label3");
JLabel label4 = new JLabel("label4");

myPanel.add(label1);
myPanel.add(label2);
myPanel.add(label3);
myPanel.add(label4);
//滚动面板内组件的设置
findStudentScrollPanel.setViewportView(myPanel);
//面板设置可见
findStudentScrollPanel.setVisible(true);
//面板添加到窗口
aJFrame.add(findStudentScrollPanel);

------解决方案--------------------
panel也要设置大小的,否则它不会自动换行
Java code
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TestFrame extends JFrame{    public static void main(String[] args)    {        //滚动面板__参数设置需要时添加滚动条        JScrollPane findStudentScrollPanel = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);        //面板大小        int WIDTH = 800;        int HEIGHT = 600;        findStudentScrollPanel.setBounds((int)((WIDTH*0.04)/2),0,(int)(WIDTH*0.96), (int)(HEIGHT*0.15));        //添加组件的面板        JPanel myPanel = new JPanel();        myPanel.setLayout(new FlowLayout(FlowLayout.LEFT,250,5));        /*         * 还要给myPanel设置一下大小         * 如下所示:         */        myPanel.setPreferredSize(new Dimension(findStudentScrollPanel.getWidth(), findStudentScrollPanel.getHeight()));        //组件准备        JLabel label1 = new JLabel("label1");        JLabel label2 = new JLabel("label2");        JLabel label3 = new JLabel("label3");        JLabel label4 = new JLabel("label4");        myPanel.add(label1);        myPanel.add(label2);        myPanel.add(label3);        myPanel.add(label4);        //滚动面板内组件的设置        findStudentScrollPanel.setViewportView(myPanel);        //面板设置可见        findStudentScrollPanel.setVisible(true);        //面板添加到窗口        //aJFrame.add(findStudentScrollPanel);        JFrame frame = new JFrame();        frame.setLayout(null);        frame.add(findStudentScrollPanel);        frame.setSize(WIDTH, HEIGHT);        frame.setVisible(true);        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }}
  相关解决方案