20 Aralık 2018 Perşembe

Awt GridBagConstraints Sınıfı

Giriş
Ekranı ızgara şeklide kullanabilmeyi sağlar. Açıklaması şöyle.
GridBagLayout is one of the most flexible — and complex — layout managers the Java platform provides. A GridBagLayout places components in a grid of rows and columns, allowing specified components to span multiple rows or columns. Not all rows necessarily have the same height. Similarly, not all columns necessarily have the same width. Essentially, GridBagLayout places components in rectangles (cells) in a grid, and then uses the components' preferred sizes to determine how big the cells should be.
constructor
Şöyle yaparız.
GridBagConstraints c = new GridBagConstraints();
anchor Alanı
Hücre içideki bileşenimiz, bir yandaki hücrenin büyük olması durumunda istediğimiz yere gelmeyebilir. Bu durumda hücre içinde nereye gitmesini istediğimizi belirtmek gerekir.

Örnek
Şöyle yaparız.
// anchor to the top left corner
c.anchor = GridBagConstraints.FIRST_LINE_START;
fill Alanı
Bileşenin hücresinin doldurmak için nasıl genişleyeceğini gösterir.
Örnek
Şöyle yaparız.
c.fill = GridBagConstraints.BOTH;
Örnek
Şöyle yaparız.
// fill horizontally
c.fill = GridBagConstraints.HORIZONTAL;
gridx Alanı
Şöyle yaparız. Eklenecek bileşenin hangi sütüna ekleneceğini belirtir.
c.gridx = 0;
c.gridy = 0;
gridweigth Alanı
1 ise kalan boşluğu dolduracak şekilde genişler.

gridwidth Alanı
Yatayda kaç hücreyi kapsayacağını belirtir.

gridy Alanı
Şöyle yaparız. Eklenecek bileşenin hangi satıra ekleneceğini belirtir.
c.gridx = 0;
c.gridy = 1;
insets Alanı
Bir sonraki hücre ile ne kadar boşluk olacağını belirtir.

Örnek
Şöyle yaparız.
// set the insets
c.insets = new Insets(35, 0, 10, 0);
Örnek
Şöyle yaparız. Bir sonraki satır için 100 birim boşluk bırakır.
JPanel p = new JPanel();
p.setLayout(new GridBagLayout());

GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
JLabel l = new JLabel("First Name");
p.add(l, gbc);

JTextField j = new JTextField(12);
gbc.gridx++;
p.add(j, gbc);

gbc.gridx = 0;
gbc.gridy++;
gbc.gridwidth = GridBagConstraints.REMAINDER;

JRadioButton j1 = new JRadioButton("Male");
JRadioButton j2 = new JRadioButton("Female");
ButtonGroup bg = new ButtonGroup();
bg.add(j1);
bg.add(j2);
JPanel buttons = new JPanel();
buttons.add(j1);
buttons.add(j2);
p.add(buttons, gbc);

gbc.gridy++;
gbc.insets = new Insets(100, 0, 0, 0);

JButton b = new JButton("Submit");
p.add(b, gbc);
weightx Alanı
Şöyle yaparız. 0'dan farklı ise hücre 0 olarak eklenmiş bileşenlerden arta kalan alanın %50'sini alacak şekilde genişler.
c.weightx = 0.5;
Eğer şu şekildeyse dikey ve yatay olarak genişler.
gbc.fill = GridBagConstraints.BOTH;
Eğer şu şekildeyse yatay olarak genişler.
gbc.fill = GridBagConstraints.HORIZONTAL;
weighty Alanı
Şöyle yaparız. 0'dan farklı ise hücre dikeyde genişler.
c.weighty = 0.5;
Kullanım
Önce bileşenin layout'u GridBagLayout yapılır. Şöyle yaparız
// set the layout to GridBagLayout
setLayout(new GridBagLayout());
Layout'a bileşen eklemek için şöyle yaparız.
JLabel label = ...;
// create a grid bag constraints instance
GridBagConstraints c = new GridBagConstraints();
...
// add the layouts label to the view
add(label, c);
Örnek
Şöyle yaparız.
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 1;

JLabel label1 = ...;
JLabel label2 = ..; 

add(label1, gbc);
gbc.gridy = 2;
add(label2, gbc);



Hiç yorum yok:

Yorum Gönder