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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算