Создание простого дизайна в Java с использованием GrigBagLayout без использования Swing - PullRequest
0 голосов
/ 26 марта 2019

Я хочу создать этот дизайн, используя только GrigBagLayout, не используя качели и панель в этом коде.

1

Чтобы выполнить мою задачу, я просто подготовил код для этогодизайн, но он не идеально организован.

import java.awt.*;
class GridBagLayout {
    public static void main(String args[]) {

        Frame f = new Frame();
        f.setSize(400,600);
        f.setLayout(new GridLayout());
        GridBagConstraints gbc = new GridBagConstraints();

        Label l = new Label("Name  ");
        gbc.gridx=1;        
        gbc.gridy=1;
        f.add(l,gbc);


        TextField t = new TextField();
        gbc.gridx=1;            
        gbc.gridy=0;
        f.add(t,gbc);


        Label l2 = new Label("Password ");
        gbc.gridx=0;                    
        gbc.gridy=1;
        f.add(l2,gbc);

        TextField t2 = new TextField();
         gbc.gridx=1;           
         gbc.gridy=1;
        f.add(t2,gbc);


        Button b = new Button("OK");
        gbc.gridx=1;
        gbc.gridy=1;
        f.add(b,gbc);

        f.setVisible(true);
    }
}  

Таким образом, любой может рассказать мне о том, где мой код не хватает, чтобы идеально организовать.

1 Ответ

0 голосов
/ 26 марта 2019

Я надеюсь, что ваша работа по назначению должна основываться на GridBagLayout

GridBagLayout

, так почему вы используете

  • f.setLayout (new GridLayout ());

Вместо использования правильного Layout

f.setLayout(новый GridBagLayout);

import java.awt.*;
    class GridBagLayout
    {
        public static void main(String[] args) {
            Frame f=new Frame();
            f.setSize(300,200);
            GridBagLayout gl = new GridBagLayout();
            f.setLayout(gl);
            GridBagConstraints g=new GridBagConstraints();
            g.gridx=0;
            g.gridy=0;
            f.add(new Label("Name") , g);

            g.gridy=1;
            f.add(new Label("Password") , g);

            g.gridx=1;
            g.gridy=0;
            f.add(new TextField(15) , g);

            g.gridy=1;
            g.gridx=1;
            f.add(new TextField(15) , g);       

            g.gridx=0;
            g.gridy=2;
            g.gridwidth=2;
            g.insets = new Insets(30,0,0,0);
            f.add(new Button("OK"),g);

            f.setVisible(true);
        }
    }

Поскольку GridBagLayout делит контейнер на сетку из одинаково sizwd ячеек, и для этого требуется много информации, чтобы знать, куда поместить компонент, поэтомуя использовал gridx / y, вставки и т. д. для правильного расположения ваших ярлыков и текстовых полей.

[Сделайте ваши основы сильными в понятиях java awt] [1]

[1]: https://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

...