如何根据可用的可见空间调整特定组件的大小?

时间:2009-12-22 21:06:59

标签: java swing layout

在我的应用程序中,我的布局类似于下面显示的内容:

@@@@@@@
XXXXXXX***
XXXXXXX***
XXXXXXX***
%%%%%%%

在此布局中,X是JTable。其他组件可以保持相同的大小。是否有一个布局或策略可以根据可用的屏幕大小调整JTable(X)的大小,并将其他所有内容保持在正确的位置?

感谢。

3 个答案:

答案 0 :(得分:5)

这看起来非常像我的BorderLayout。你试过了吗?

答案 1 :(得分:0)

也可以使用GroupLayout完成,但它是为GUI构建器设计的,因为它非常详细。因此,如果您已有现有代码,则可能不想先尝试。

答案 2 :(得分:0)

我是JGoodies FormLayout的忠实粉丝。以下是使用FormLayout执行此操作的一种示例代码。

    JPanel panel = new JPanel();        
    FormLayout layout = new FormLayout("100dlu, 20dlu:grow", "pref, pref, pref");
    panel.setLayout(layout);

    JTextField t1 = new JTextField();
    JTextField t2 = new JTextField();
    JTable tb = new JTable();
    JScrollPane sp = new JScrollPane();
    sp.setViewportView(tb);

    CellConstraints cc = new CellConstraints();
    panel.add(t1, cc.xy(1, 1));
    panel.add(t2, cc.xy(1, 3));
    panel.add(sp, cc.xyw(1, 2, 2));