亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Swing GUI中提供空白區域

在Swing GUI中提供空白區域

大話西游666 2019-05-20 16:58:24
沒有空白區域的GUI顯得“擁擠”。如何在不借助明確設置組件的位置或大小的情況下提供空白區域?
查看完整描述

4 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

MigLayout有多種創造空間的方式。(在此布局中,空間稱為間隙。)可以使用布局約束在最高級別創建間隙,可以在行和列之間創建間隙,也可以在具有組件約束的各個組件之間設置間隙。在名為insets的容器的邊界周圍也存在特定的間隙,這些容器具有自己的特定關鍵字。


以下示例創建所有這些類型的差距:


package com.zetcode;


import java.awt.EventQueue;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

import net.miginfocom.swing.MigLayout;



public class MigLayoutGaps2 extends JFrame {


    public MigLayoutGaps2() {


        initUI();


        setTitle("Gaps");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setLocationRelativeTo(null);

    }


    private void initUI() {


        JPanel base = new JPanel(new MigLayout("flowy, ins 30, gap 15"));

        setContentPane(base);


        JPanel pnl1 = new JPanel();

        pnl1.setBorder(

                BorderFactory.createTitledBorder("Grid gaps")

        );


        pnl1.setLayout(new MigLayout("gap 5 5, ins 10, wrap 3"));


        pnl1.add(new JButton("1"));

        pnl1.add(new JButton("2"));

        pnl1.add(new JButton("3"));

        pnl1.add(new JButton("4"));

        pnl1.add(new JButton("5"));

        pnl1.add(new JButton("6"));


        JPanel pnl2 = new JPanel();

        pnl2.setBorder(

                BorderFactory.createTitledBorder("Column gaps")

        );


        pnl2.setLayout(new MigLayout("wrap 3", "[]10[]"));


        JLabel lbl1 = new JLabel();

        lbl1.setBorder(

            BorderFactory.createEtchedBorder()

        );


        JLabel lbl2 = new JLabel();

        lbl2.setBorder(

            BorderFactory.createEtchedBorder()

        );


        JLabel lbl3 = new JLabel();

        lbl3.setBorder(

            BorderFactory.createEtchedBorder()

        );        


        pnl2.add(lbl1, "w 40, h 110");

        pnl2.add(lbl2, "w 40, h 110");

        pnl2.add(lbl3, "w 40, h 110");


        JPanel pnl3 = new JPanel();

        pnl3.setBorder(

                BorderFactory.createTitledBorder("Row gaps")

        );


        pnl3.setLayout(new MigLayout("wrap", "", "[]15[]"));


        JLabel lbl4 = new JLabel();

        lbl4.setBorder(

            BorderFactory.createEtchedBorder()

        );


        JLabel lbl5 = new JLabel();

        lbl5.setBorder(

            BorderFactory.createEtchedBorder()

        );


        JLabel lbl6 = new JLabel();

        lbl6.setBorder(

            BorderFactory.createEtchedBorder()

        );        


        pnl3.add(lbl4, "w 150, h 20");

        pnl3.add(lbl5, "w 150, h 20");

        pnl3.add(lbl6, "w 150, h 20");        


        JPanel pnl4 = new JPanel();

        pnl4.setBorder(

                BorderFactory.createTitledBorder("Component gaps")

        );


        pnl4.setLayout(new MigLayout());


        pnl4.add(new JLabel("Name:"), "gapright 5");

        pnl4.add(new JTextField(10), "gapbottom 20, gaptop 20");


        base.add(pnl1);

        base.add(pnl2);

        base.add(pnl3);

        base.add(pnl4);


        pack();

    }


    public static void main(String[] args) {


        EventQueue.invokeLater(new Runnable() {

            @Override

            public void run() {

                MigLayoutGaps2 ex = new MigLayoutGaps2();

                ex.setVisible(true);

            }

        });

    }

}

我們在布局中有四個面板。每個小組都有一名MigLayout經理。


JPanel base = new JPanel(new MigLayout("flowy, ins 30, gap 15"));

此行創建容器插圖和面板之間的垂直間隙。


pnl1.setLayout(new MigLayout("gap 5 5, ins 10, wrap 3"));

在這里,我們為整個網格結構應用間隙,并設置容器間隙。


pnl2.setLayout(new MigLayout("wrap 3", "[]10[]"));

此行會在列之間創建間隙。


pnl3.setLayout(new MigLayout("wrap", "", "[]15[]"));

使用此代碼定義行間隙。


pnl4.add(new JLabel("Name:"), "gapright 5");

pnl4.add(new JTextField(10), "gapbottom 20, gaptop 20");

最后,可以在各個組件之間創建間隙。


查看完整回答
反對 回復 2019-05-20
  • 4 回答
  • 0 關注
  • 969 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號