Философия Java


BoxLayout - часть 2


// Вертикальный и горизонтальный BoxLayouts.

// <applet code=Box1

// width=450 height=200> </applet>

import javax.swing.*; import java.awt.*; import com.bruceeckel.swing.*;

public class Box1 extends JApplet { public void init() { Box bv = Box.createVerticalBox(); for(int i = 0; i < 5; i++) bv.add(new JButton("" + i)); Box bh = Box.createHorizontalBox(); for(int i = 0; i < 5; i++) bh.add(new JButton("" + i)); Container cp = getContentPane(); cp.add(BorderLayout.EAST, bv); cp.add(BorderLayout.SOUTH, bh); } public static void main(String[] args) { Console.run(new Box1(), 450, 200); } } ///:~

Как только вы получаете Box, вы передаете его в качестве второго аргумента при добавлении компонента в панель содержания.

Распорки между компонентами измеряется в пикселях. Для использования распорок, вы просто добавляете их между вставкой компонент:

//: c13:Box2.java

// Добавление разделителей.

// <applet code=Box2

// width=450 height=300> </applet>

import javax.swing.*; import java.awt.*; import com.bruceeckel.swing.*;

public class Box2 extends JApplet { public void init() { Box bv = Box.createVerticalBox(); for(int i = 0; i < 5; i++) { bv.add(new JButton("" + i)); bv.add(Box.createVerticalStrut(i*10)); } Box bh = Box.createHorizontalBox(); for(int i = 0; i < 5; i++) { bh.add(new JButton("" + i)); bh.add(Box.createHorizontalStrut(i*10)); } Container cp = getContentPane(); cp.add(BorderLayout.EAST, bv); cp.add(BorderLayout.SOUTH, bh); } public static void main(String[] args) { Console.run(new Box2(), 450, 300); } } ///:~

Распорки разделяют компоненты на фиксированную величину, а склейки наоборот: они разделят компоненты настолько, насколько это возможно. Так что это, скорее “пружина”, чем “клей” (а дизайн, на котором это базируется должен называться “пружины и распорки”, так что выбор терминов немного непонятен).

//: c13:Box3.java

// Использование Glue (клея).

// <applet code=Box3

// width=450 height=300> </applet>




Начало  Назад  Вперед