liude33 2015-05-24 06:22
浏览 1378

关于swing布局问题--borderlayout+flowlayout自动撑高问题

就象2bizbox 查询列表区域(上面查询条件+分页条,下面是表格列表)那样,调整窗口大小时,那个查询条件的框会自动换行排列,并且这个查询区域的高度会自动撑高。

图片说明
图片说明

package com.more.mes.sysmain.action;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class TestLayout extends JFrame {

/**
 * 
 */
private static final long serialVersionUID = -7038258315579184604L;

private JPanel jp1;// 总panel(用borderlayout)
private JPanel jp2;// (放在north)查询条件区域panel(flowlayout)
private JPanel jp3;// (放在center)记录集显示表格区域panel(borderlayout)

public TestLayout() {
    this.setSize(600, 400);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    jp1 = new JPanel(new BorderLayout());
    jp2 = new JPanel(new FlowLayout());
    jp3 = new JPanel(new BorderLayout());

    this.getContentPane().add(jp1);
    jp1.add(jp2, java.awt.BorderLayout.NORTH);
    jp1.add(jp3, java.awt.BorderLayout.CENTER);

    JLabel jlab1 = new JLabel("物料名称1");
    JLabel jlab2 = new JLabel("物料名称2");
    JLabel jlab3 = new JLabel("物料名称3");
    JLabel jlab4 = new JLabel("物料名称4");
    JLabel jlab5 = new JLabel("物料名称5");
    JLabel jlab6 = new JLabel("物料名称6");

    JTextField jtext1 = new JTextField("测试文本框1");
    JTextField jtext2 = new JTextField("测试文本框2");
    JTextField jtext3 = new JTextField("测试文本框3");
    JTextField jtext4 = new JTextField("测试文本框4");
    JTextField jtext5 = new JTextField("测试文本框5");
    JTextField jtext6 = new JTextField("测试文本框6");

    jp2.add(jlab1);
    jp2.add(jtext1);
    jp2.add(jlab2);
    jp2.add(jtext2);
    jp2.add(jlab3);
    jp2.add(jtext3);
    jp2.add(jlab4);
    jp2.add(jtext4);
    jp2.add(jlab5);
    jp2.add(jtext5);
    jp2.add(jlab6);
    jp2.add(jtext6);

    JTable jtable = new JTable();

    jtable.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { { null, null, null, null, null },
            { null, null, null, null, null }, { null, null, null, null, null }, { null, null, null, null, null } },
            new String[] { "Title 1", "Title 2", "Title 3", "Title 4", "Title 5" }));

    JScrollPane jsp = new JScrollPane();
    jsp.getViewport().add(jtable, null);
    jp3.add(jsp, BorderLayout.CENTER);
    jp1.updateUI();
}

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

}


  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!